当究竟UIAppearance规则得到应用到一些新的视图控制器我徘徊?
我做了一些全球性规则,我称他们为我的应用程序委托。 这样,所有UIButtons看起来相同。 但现在我想修改一个UIButton的只是外表。 我试着将代码删除它的背景里- (void)viewDidLoad
,但它不工作- UIAppearance规则尚未应用。 在一个视图控制器我把修改代码中- (void)viewWillLayoutSubviews
它完美地工作,但现在在另一个视图控制器不工作(代码是一样的)。
哪里是安全的替代UIAppearance规则?
根据2011年WWDC视频引入UIAppearance,所述自定义设置权之前施加-layoutSubviews
被称为上的视图。
如果你正在寻找定制一个特定的按钮,你应该:
改变直接按钮实例的属性,而不是触摸外观设置为类,或
使用appearanceWhenContainedIn:
方法如下图所示:
[[UIButton appearanceWhenContainedIn:[CustomView class], nil] setBackgroundImage:myButtonImage forState:UIControlStateNormal];
这样,你仍然可以使用代理外观为您的特定按钮(当你知道它包含在特定视图),并不会改变整体外观的设置。