1.在UI控件布置外观的时候,我们通常会遇到这种情况:比如设置tabBr
当有多个控制器的时候,每次都要写
[vc.tabBarItem setTitleTextAttributes:attrDic1 forState:UIControlStateNormal];
[vc.tabBarItem setTitleTextAttributes:attrDic2 forState:UIControlStateSelected];
这样好麻烦,而且代码很冗余,感觉好麻烦,然而其实可以这样用的,我们可以通过appearance来拿到这个控件,从而进行统一设置外观,像这样UITabBarItem *item = [UITabBarItem appearance];如下,这样的话不管你有几个tabBarItem,都能统一设置
(不过呢,appearance只适用于方法后面有这个字样的UI_APPEARANCE_SELECTOR,就像上面的tabBarItem的设置
- (void)setTitleTextAttributes:(nullable NSDictionary*)attributes forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR);
2.在设置某个属性时,我们可能会碰到这样的结果,就是这个属性是只读属性,修改不了,像这个
@property(null_resettable,nonatomic,readonly) UIToolbar *toolbar NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED;
用self.navigationController.toolbar =[[XXToolbar alloc]init];是不可行的我们应该用kvo来实现
[self.navigationController.toolbar setValue:[[XXToolbar alloc]init] forKey:@"toolbar"];
这样就可实现修改
3.在xib中设置圆角或者阴影等等,,,我们可以通过kvc来设置,选中控件,看到类属性这块;个人建议:KeyPath 采用commdC CommdV
4.在一个工程中有个自带的plist文件
这个文件通过代码可以获取:[NSBundle mainBundle].infoDictionary 返回一个字典,包含以下信息:有版本信息,app的名称等信息