13

我在徘徊 UIAppearance 规则何时应用于一些新的视图控制器?

我制定了一些全局规则,并在我的应用程序委托中调用它们。这样所有的 UIButton 看起来都一样。但现在我只想修改一个 UIButton 的外观。我已经尝试将代码删除它的背景,- (void)viewDidLoad但它不起作用 - UIAppearance 规则尚未应用。在一个 ViewController 中,我将修改代码放入- (void)viewWillLayoutSubviews其中,它运行良好,但现在在另一个 ViewController 中它不起作用(代码相同)。

覆盖 UIAppearance 规则在哪里安全?

4

2 回答 2

14

根据 2011 年 WWDC 视频介绍 UIAppearance,在-layoutSubviews视图调用之前应用自定义。

于 2012-11-10T14:25:53.903 回答
1

如果您希望自定义一个特定按钮,您应该:

  1. 直接更改按钮实例的属性,不要触摸类的外观设置,或者

  2. 使用如下appearanceWhenContainedIn:方法:

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

这样,您仍然可以为您的特定按钮使用外观代理(当您知道它包含在特定视图中时),而不会更改一般外观设置。

于 2012-10-31T09:46:29.673 回答