2012-07-13 43 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]; 
    

这样,您仍然可以使用外观代理服务器作为特定按钮(当您知道它包含在特定视图中时),并且不会更改常规外观设置。

相关问题