• <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://m.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)
            亚洲AV无一区二区三区久久| 亚洲国产综合久久天堂| 潮喷大喷水系列无码久久精品| 久久91精品久久91综合| 久久久久人妻一区精品果冻| 三上悠亚久久精品| 日韩AV毛片精品久久久| 久久精品国产亚洲AV香蕉| 久久亚洲天堂| 99久久人人爽亚洲精品美女| 无码精品久久久久久人妻中字| 国产亚洲美女精品久久久| 99久久夜色精品国产网站 | 国产精品成人精品久久久| 亚洲va久久久噜噜噜久久狠狠| 久久精品国产亚洲5555| 久久精品人人做人人爽97 | 99久久香蕉国产线看观香 | 欧美噜噜久久久XXX| 色天使久久综合网天天| 久久影院午夜理论片无码 | 99久久精品国产综合一区| 亚洲午夜久久久久久久久电影网| 久久久91人妻无码精品蜜桃HD| 99国产精品久久久久久久成人热| 久久热这里只有精品在线观看| 久久精品国产99久久丝袜| 久久国产成人亚洲精品影院| 国产精品一区二区久久不卡| 日韩精品久久无码中文字幕| 人妻少妇久久中文字幕| 久久久久无码精品国产不卡| 久久天天躁狠狠躁夜夜96流白浆| 亚洲午夜久久久久妓女影院| 中文国产成人精品久久不卡| 久久亚洲欧美国产精品| 97久久精品人妻人人搡人人玩 | 精品国际久久久久999波多野| 国产成人精品久久免费动漫| 欧美激情精品久久久久| 国产高潮国产高潮久久久91|