3

我为我的一些 UI 类设置了自定义外观。

[[UIBarButtonItem appearance] setTintColor:someColor];
...
[[UINavigationBar appearance] setBackgroundImage:someImage forBarMetrics:UIBarMetricsDefault];

因此,当我在我的应用程序中创建UIBarButtonItem's对象UINavigationBar's时,它们将具有定义的外观。

但是,如果希望某些对象具有标准外观(不使用代理定义),我需要手动将其所有属性设置为默认值。

所以问题是:有没有办法阻止使用UIAppearance某个对象?

谢谢你。

4

1 回答 1

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];

于 2013-08-07T10:22:16.540 回答