appearance注意点
1.只要遵守了UIAppearance协议,还要实现这个方法
2.哪些属性可以通过appearance设置:只有被UI_APPEARANCE_SELECTOP宏修饰的属性,才能设置
3.只能在控件显示之前设置,才有作用
举例(我们将所有的按钮控件从绿色变成红色)
- 因为直接修改switch的话,他已经显示到view上面了,appearance根本不好用,所以我们可以移除再次添加,可是我们不可能一个一个拿到再次移除,所以我们直接将他的父控件移除再次添加
//将控制器的view移除
[self.view removeFromSuperview];
UISwitch *switchView = [UISwitch appearance];
switchView.onTintColor = [UIColor redColor];
//将控制的view重新添加上到window上面
[[UIApplication sharedApplication].keyWindow addSubview:self.view];
- 获取整个应用程序下的TabBarItem
UITabBarItem *item = [UITabBarItem appearance];
- 获取当前类下的TabBarItem
UITabBarItem *item = [UITabBarItem appearanceWhenContainedIn:self, nil];
使用场景
- 夜间模式