• <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>

            兔子的技術博客

            兔子

               :: 首頁 :: 聯系 :: 聚合  :: 管理
              202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

            留言簿(10)

            最新評論

            閱讀排行榜

            評論排行榜

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

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

            轉自: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 會飛的兔子 閱讀(5218) 評論(0)  編輯 收藏 引用 所屬分類: 蘋果相關
            久久综合亚洲欧美成人| 99久久婷婷国产综合精品草原| 人妻无码久久精品| 国产精品久久婷婷六月丁香| 久久天天躁狠狠躁夜夜96流白浆| 69久久精品无码一区二区| 久久精品国产一区二区三区 | 久久久久久久波多野结衣高潮| 狠狠综合久久综合88亚洲| 一本伊大人香蕉久久网手机| 狠狠综合久久综合88亚洲| 国产ww久久久久久久久久| 久久久久亚洲AV无码网站| 久久影院午夜理论片无码 | 久久久噜噜噜www成人网| 蜜臀久久99精品久久久久久| 91精品国产综合久久婷婷| 久久精品国产亚洲AV蜜臀色欲| 精品久久久久久国产免费了| 99久久无色码中文字幕| 狠狠色婷婷久久综合频道日韩 | 久久天天躁狠狠躁夜夜2020老熟妇| 午夜不卡久久精品无码免费| 亚洲AV伊人久久青青草原| 国产精品美女久久久免费| 久久综合九色综合97_久久久| 99久久超碰中文字幕伊人| 亚洲精品白浆高清久久久久久| 人妻精品久久久久中文字幕| 久久精品亚洲精品国产欧美| 国产午夜福利精品久久| 久久91综合国产91久久精品 | 亚洲另类欧美综合久久图片区| 国产91久久综合| 久久久久国产一区二区| 草草久久久无码国产专区| 久久99久久无码毛片一区二区| 久久久久99精品成人片三人毛片| 99久久夜色精品国产网站| 日韩久久久久中文字幕人妻| 精品国产乱码久久久久久人妻|