您的位置:首页 > 移动开发

待完成任务 —— appearance意义及功能使用方法

2016-05-23 17:02 387 查看
使用
UIAppearance
协议去获取一个类的
appearance
代理。

你可以通过向其发送一个外观改变消息来改造一个类的所有实例的外观。

注意:iOS仅在一个view进入到一个window时才会应用其appearance更改操作。当一个view已经在window时,它不会发生任何的界面属性理性。如果想更改当前在window上的view的appearance需要先将其从视图层级上移除,然后再把它添加上去即可。


有两种方式可以为一个对象改造其
appearance


为所有实例

为一个容器类中的所有实例

1 . 想去改造一个类的所有实例的
appearance
,需要使用
appearance
方法去获得这个类的
appearance
的代理。如, 去改变
UINavigationBar
bar
的所有实例的背景色调:

[[UINavigationBar appearance] setBarTintColor:myNavBarBackgroundColor];


2 .如果想改变一个容器类中的某一个类的实例,或是在视图层级上的实例,需要使用appearanceWhenContainedIn: 去获得这个类的代理,如,想去更改bar 上的buttons 的 appearance属性,基于它们 都在导航栏上。

[[UIBarButtonItem appearanceWhenContainedIn:[uinavigationBar class],nil] setBackgroundImage:myNavBarButtonBackgroundImage forState:state barMetrics:metrics];

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIPopoverController class], nil]
setBackgroundImage:myPopoverNavBarButtonBackgroundImage forState:state barMetrics:metrics];
[[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil]
setBackgroundImage:myToolbarButtonBackgroundImage forState:state barMetrics:metrics];
[[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], [UIPopoverController class], nil]
setBackgroundImage:myPopoverToolbarButtonBackgroundImage forState:state barMetrics:metrics];


其实说白了appearance就是为了方便批量进行相应控件修改操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios class