• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            兔子的技術(shù)博客

            兔子

               :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

            留言簿(10)

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            一個(gè)搜索效果的實(shí)現(xiàn)
            2008-11-02 14:11
            iPhone內(nèi)置的Safari程序,點(diǎn)URL條,鍵盤(pán)和URL條中間部分變灰顯示,然后隨著URL的輸入,在中間以UITableView顯示搜索的結(jié)果。好多iPhone程序也都有類(lèi)似的效果。這是如何實(shí)現(xiàn)的呢?下面說(shuō)一下我的實(shí)現(xiàn)方法。
            首先注冊(cè)鍵盤(pán)事件UIKeyboardWillShowNotification的監(jiān)聽(tīng)
            [[NSNotificationCenter defaultCenter] addObserver:self 
                                                        selector:@selector(keyboardWillShow:) 
                                                            name:UIKeyboardWillShowNotification object:nil]; 
            程序在點(diǎn)擊textField或searchBar,鍵盤(pán)顯示之前,會(huì)發(fā)送UIKeyboardWillShowNotification通知消息到我們注冊(cè)的對(duì)象。在keyboardWillShow方法里,我們可以在要變灰的位置上加一個(gè)背景著色為黑色的UIView,并將其alpha屬性設(shè)為0.9,以達(dá)到效果
            - (void)keyboardWillShow:(NSNotification*)aNotification {
                if (keyboardShown) 
                    return; 
                NSDictionary* info = [aNotification userInfo]; 

                NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey]; 
                //鍵盤(pán)的大小
                CGSize keyboardRect = [aValue CGRectValue].size;
                //計(jì)算覆蓋上去的UIView的區(qū)域,因?yàn)殒I盤(pán)始終是在上面的,所以UIView *maskView下面可以大些,主要不要蓋住上面的searchBar之類(lèi)的內(nèi)容。要顯示結(jié)果的UITableView的大小則要根據(jù)鍵盤(pán)的大小算出確切的中間區(qū)域
                ...
                //將maskView移動(dòng)最前面
                [window bringSubviewToFront:maskView];
                maskView.alpha = 0.0;
                //設(shè)置動(dòng)畫(huà)和maskView最終的alpha值
                [UIView beginAnimations:nil context:NULL];
                [UIView setAnimationDuration:0.5];
                maskView.alpha = 0.9;
                [UIView commitAnimations];
                keyboardShown = YES; 
            }
            keyboardShown是用來(lái)跟蹤鍵盤(pán)是否已經(jīng)顯示的布爾變量。如果有多個(gè)文本域,之間切換時(shí)雖然鍵盤(pán)不變,仍會(huì)生成UIKeyboardWillShowNotification。通過(guò)變量keyboardShown跟蹤鍵盤(pán)是不是真的隱藏,可以保證這個(gè)效果只執(zhí)行一次。
            當(dāng)searchBar有輸入時(shí),可參考官方例子TableSearch,把UITableView加到上面的maskView上。
            當(dāng)鍵盤(pán)隱藏時(shí),把UITableView移掉,將maskView的alpha屬性設(shè)為0,即可隱藏maskView。
            實(shí)現(xiàn)方法可以更靈活,大體思路應(yīng)該就是這樣吧。

            轉(zhuǎn)自:http://hi.baidu.com/programme/blog/item/6f8e4c08359015920b7b8249.html
            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2011-10-26 21:47 會(huì)飛的兔子 閱讀(5211) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 蘋(píng)果相關(guān)
            久久久无码精品亚洲日韩蜜臀浪潮| 欧美日韩成人精品久久久免费看| 国产精品久久久久久久人人看| 中文字幕久久亚洲一区| 亚洲综合熟女久久久30p| 2021少妇久久久久久久久久| 大蕉久久伊人中文字幕| 奇米影视7777久久精品人人爽| 一本色道久久HEZYO无码| 国产成人99久久亚洲综合精品| 区久久AAA片69亚洲| 91精品免费久久久久久久久| 久久只有这精品99| 久久这里只有精品首页| 国产欧美久久久精品影院| 91精品国产高清久久久久久91| 思思久久好好热精品国产| 久久夜色tv网站| 男女久久久国产一区二区三区| 99久久免费只有精品国产| 久久棈精品久久久久久噜噜| 国产农村妇女毛片精品久久| 人妻久久久一区二区三区| 免费一级欧美大片久久网| 一本久久a久久精品综合夜夜| 一本一道久久综合狠狠老| 欧洲国产伦久久久久久久| 久久综合久久综合九色| 久久婷婷五月综合色高清| 麻豆精品久久久久久久99蜜桃 | 国产精品永久久久久久久久久| 三上悠亚久久精品| 久久九九兔免费精品6| 国产精品亚洲综合久久| 久久精品国产99久久香蕉| 国产亚洲成人久久| 久久久久人妻精品一区三寸蜜桃| 久久国产成人午夜AV影院| 91精品国产综合久久四虎久久无码一级| 国产精品99久久99久久久| 7777久久亚洲中文字幕|