我正在使用 UIAppearance 自定义所有 UIBarButtonItem,其中包括:
[[UIBarButtonItem appearance] setTintColor:[UIColor purpleColor]];
除了糟糕的颜色选择外,它的效果很好。
现在,我想要一些具有特定样式的按钮。所以我创建了一个新类,我们称之为YellowDoneBarButtonItem
.
我也想自定义它,所以我添加:
[[YellowDoneBarButtonItem appearance] setTintColor:[UIColor yellowColor]];
不幸的是,最后一次调用... appearance] setTintColor:
获胜,所有按钮,无论是否为子类,都采用最后指定的颜色。
我不能使用appearanceWhenContainedIn:
,因为有时,我可能在同一个导航栏中有两种不同的按钮样式。
有没有办法UIAppearance
比all or nothing更有选择性地使用?
医生说:
在任何给定的视图层次结构中,最外层的外观代理获胜。特异性(链的深度)是决胜局。换句话说,appearanceWhenContainedIn: 中的包含语句被视为部分排序。给定一个具体的排序(实际的子视图层次结构),UIKit 在从窗口向下读取实际层次结构时选择部分排序,它是第一个唯一匹配的。
有什么技巧可以将这个事实转变为这里需要的吗?