2012-07-13 48 views
13

時究竟UIAppearance規則得到應用到一些新的視圖控制器我徘徊?何時將UIAppearance代理規則應用於新視圖控制器?

我做了一些全球性規則,我稱他們爲我的應用程序委託。這樣所有的UIButtons看起來都一樣。但是現在我想修改一個UIButton的外觀。我試過把代碼刪除它的背景- (void)viewDidLoad,但它不起作用 - UIAppearance規則尚未應用。在一個ViewController中,我把修改代碼放在- (void)viewWillLayoutSubviews裏面,它工作得很好,但是現在在另一個ViewController中它不起作用(代碼是相同的)。

哪裏是安全的替代UIAppearance規則?

回答

13

根據2011年WWDC視頻引入UIAppearance,所述自定義設置右-layoutSubviews被稱爲視圖上之前施加。

1

如果你正在尋找定製一個特定的按鈕,你應該:

  1. 阿爾特直接按鈕實例的屬性,並沒有觸及該類的外觀設置,或

  2. 使用appearanceWhenContainedIn:方法如下圖所示:

    [[UIButton appearanceWhenContainedIn:[CustomView class], nil] 
    setBackgroundImage:myButtonImage 
          forState:UIControlStateNormal]; 
    

這樣,您仍然可以使用外觀代理服務器作爲特定按鈕(當您知道它包含在特定視圖中時),並且不會更改常規外觀設置。

相關問題