1.在UI控件布置外觀的時(shí)候椿胯,我們通常會(huì)遇到這種情況:比如設(shè)置tabBr
當(dāng)有多個(gè)控制器的時(shí)候划滋,每次都要寫
[vc.tabBarItem setTitleTextAttributes:attrDic1 forState:UIControlStateNormal];
[vc.tabBarItem setTitleTextAttributes:attrDic2 forState:UIControlStateSelected];
這樣好麻煩,而且代碼很冗余,感覺(jué)好麻煩,然而其實(shí)可以這樣用的,我們可以通過(guò)appearance來(lái)拿到這個(gè)控件胡桨,從而進(jìn)行統(tǒng)一設(shè)置外觀,像這樣UITabBarItem *item = [UITabBarItem appearance];如下瞬雹,這樣的話不管你有幾個(gè)tabBarItem昧谊,都能統(tǒng)一設(shè)置
(不過(guò)呢,appearance只適用于方法后面有這個(gè)字樣的UI_APPEARANCE_SELECTOR酗捌,就像上面的tabBarItem的設(shè)置?
- (void)setTitleTextAttributes:(nullable NSDictionary*)attributes forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR);
2.在設(shè)置某個(gè)屬性時(shí)呢诬,我們可能會(huì)碰到這樣的結(jié)果,就是這個(gè)屬性是只讀屬性意敛,修改不了馅巷,像這個(gè)
@property(null_resettable,nonatomic,readonly) UIToolbar *toolbar NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED;
用self.navigationController.toolbar? =[[XXToolbar alloc]init];是不可行的我們應(yīng)該用kvo來(lái)實(shí)現(xiàn)
[self.navigationController.toolbar setValue:[[XXToolbar alloc]init]? forKey:@"toolbar"];
這樣就可實(shí)現(xiàn)修改 ? ? ? ? ? ? ?
3.在xib中設(shè)置圓角或者陰影等等,草姻,钓猬,我們可以通過(guò)kvc來(lái)設(shè)置,選中控件撩独,看到類屬性這塊敞曹;個(gè)人建議:KeyPath 采用commdC CommdV
4.在一個(gè)工程中有個(gè)自帶的plist文件
這個(gè)文件通過(guò)代碼可以獲取:[NSBundle mainBundle].infoDictionary 返回一個(gè)字典澳迫,包含以下信息:有版本信息局齿,app的名稱等信息