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

            Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

            路漫漫,長修遠,我們不能沒有錢
            隨筆 - 173, 文章 - 0, 評論 - 257, 引用 - 0
            數據加載中……

            使用UIAppearance協議自定義視圖

            我們再介紹一個對iOS 5的重要補充功能:通過蘋果原生類庫自定義視圖外觀。在iOS 5以前,自定義原生控件的外觀并沒有原生支持,因此開發人員感覺很麻煩。開發人員經常面臨的問題是修改一個控件所有實例的外觀。解決這個問題的正確方法是重寫一遍控件。但由于這么做非常費時,一些開發人員開始覆蓋或混寫一些方法,如drawRect:。

            從iOS 5開始,蘋果通過兩個協議(UIAppearanceUIAppearanceContainer)規范了對許多UIKit控件定制的支持。所有遵循UIAppearance協議的UI控件通過定制都可以呈現各種外觀。不僅如此,UIAppearance協議甚至允許開發者基于控件所屬的區域指定不同的外觀。也就是說,當某個控件包含在特定視圖中時,可以指定它的外觀(如UIBarButtonItemtintColor)。也可以獲取該控件類的外觀代理對象,用該代理定制外觀來實現,下面來看一個例子。

            要定制應用中所有條形按鈕的顏色,可以在UIBarButtonItem的外觀代理中設置tintColor

            [[UIBarButtonItem  appearance]  setTintColor:[UIColor  redColor]];

            注意,iOS 4的時候setTintColor方法就在UIBarButtonItem中了,但它只會作用到某個特定的控件實例,而不是所有的此類控件。借助外觀代理對象,我們可以定制使用上述類創建的任意對象的外觀。

            同樣,可以根據內部包含的視圖采用如下方法來定制控件的外觀:

            [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]  setTintColor:[UIColor redColor]];

            第一個參數是以nil結尾的所有容器類的列表,包括UINavigatorBar、UIPopOverController等遵循UIAppearanceContainer協議的類。

            從iOS 5開始,大多數UI元素都增加了對UIAppearance協議的支持。此外,iOS 5中類似于UISwitch的控件允許我們方便地將on開關的顏色變成設計師選定的顏色?,F在,怎么確定哪些情況下能夠通過UIKit的外觀代理來定制所有元素(以及元素中的哪些屬性)呢?有兩種方式。老辦法是查閱文檔,另一個辦法是大多數開發人員使用的快捷方式:讀頭文件。打開對應的UIKit元素的頭文件,其中所有帶有UI_APPEARANCE_SELECTOR標記的屬性都支持通過外觀代理來定制。舉個例子,UINavigationBar.h中的tintColor屬性帶有UI_APPEARANCE_SELECTOR標記:

            @property(nonatomic,retain) UIColor *tintColor    UI_APPEARANCE_SELECTOR;

            意味著可以調用

            [[UINavigationBar   appearance]  setTintColor:newColor];

            盡管一開始蘋果反對(在Mac和iOS平臺上)使用UI定制,但情況慢慢發生了變化。蘋果自己的原生應用(比如新的Reminder應用)也有了深度定制的、模仿現實的用戶界面。有了UIAppearance協議,實現同樣效果所用的代碼要少得多。

            posted on 2014-06-21 15:33 Khan 閱讀(1396) 評論(0)  編輯 收藏 引用 所屬分類: 周邊技術

            久久伊人精品青青草原高清| 久久久久亚洲国产| 成人综合伊人五月婷久久| 久久久久亚洲AV无码永不| 久久久青草久久久青草| 久久婷婷五月综合色99啪ak| 久久亚洲精品国产亚洲老地址| 久久亚洲春色中文字幕久久久 | 99精品久久精品一区二区| 国产69精品久久久久99| 久久久久久久久久久久久久| 国产精品岛国久久久久| 性做久久久久久久久久久| 国内精品久久国产大陆| 久久人做人爽一区二区三区| 国产精品亚洲美女久久久| 一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 | 亚洲中文字幕伊人久久无码| 一本久久a久久精品综合夜夜| 久久96国产精品久久久| 久久人人爽人人爽人人爽| 91久久精品国产成人久久| 久久精品国产亚洲av麻豆图片 | 无码AV波多野结衣久久| 久久人人爽人人爽人人片AV麻烦| 国产精品欧美久久久久天天影视| 久久精品国产久精国产思思| 亚洲国产视频久久| 久久这里只有精品视频99| 狠狠色综合网站久久久久久久| 狠狠88综合久久久久综合网| 久久亚洲中文字幕精品有坂深雪| 最新久久免费视频| 久久久噜噜噜久久中文字幕色伊伊| 欧美粉嫩小泬久久久久久久 | 久久不射电影网| 久久99热狠狠色精品一区| 久久99精品国产| 狠狠狠色丁香婷婷综合久久俺| 亚洲欧洲中文日韩久久AV乱码| 久久无码AV中文出轨人妻|