我为自己的一些UI类设置了自定义外观。
[[UIBarButtonItem appearance] setTintColor:someColor];
...
[[UINavigationBar appearance] setBackgroundImage:someImage forBarMetrics:UIBarMetricsDefault];
因此,当我在我的应用程序中创建UIBarButtonItem's
或UINavigationBar's
个对象时,它们将定义外观。
但是如果想要某个对象具有标准外观(不使用代理定义),我需要手动将其所有属性设置为默认值。
所以问题是:有没有办法阻止UIAppearance
使用某个对象?
谢谢。
答案 0 :(得分:1)
编辑: 它可能不是你想做的100%,但你可以使用appearanceWhenContainedIn。
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:[UIColor redColor]];
[[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil] setTintColor:[UIColor yellowColor]];
通过这种方式,您可以在一定程度上控制行为。
将属性设置为nil将使用默认外观: [self.navigationController.navigationBar setTintColor:nil];