自从iOS5以后,可以实现UIAppearance协议来统一设定界面外观,可以让程序员很轻松的改变某些控件的全局样式。
定制外观方法:
1.返回接受外观设置的代理:
+ (instancetype)appearance
比如,这样便统一设置了UIDatePicker的背景颜色,之后每个创建的UIDatePicker背景颜色都是一样的:
[[UIDatePicker appearance] setBackgroundColor:[UIColor greenColor]];
+ (instancetype)appearanceForTraitCollection:(UITraitCollection *)trait
+ (instancetype)appearanceForTraitCollection:(UITraitCollection *)trait
whenContainedIn:(Class<UIAppearanceContainer>)ContainerClass
3.当出现在某个类的出现时候才会改变:
+ (instancetype)appearanceWhenContainedIn:(Class<UIAppearanceContainer>)ContainerClass
, ...
例如:
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIPopoverController class], nil] setTintColor:myPopoverNavBarColor];
第一个参数是以
nil结尾的所有容器类的列表,包括
UINavigatorBar、
UIPopOverController等遵循
UIAppearanceContainer协议的类。