經過UIAppearance,咱們能夠輕鬆的統一管理app界面的某些外觀屬性,以UINavigationBar爲例有以下兩個方法:app
[UINavigationBar appearance]
[UINavigationBar appearanceWhenContainedIn:(nullable Class<UIAppearanceContainer>), ..., nil]
示例代碼,搭配富文本屬性統一設置外觀:code
+(void)load { UINavigationBar *bar = [UINavigationBar appearanceWhenContainedIn:self, nil]; //統一設置當前自定義導航控制器類的導航條標題富文本 NSMutableDictionary *attr = [NSMutableDictionary dictionary]; attr[NSFontAttributeName] = [UIFont boldSystemFontOfSize:20]; bar.titleTextAttributes = attr; //統一設置導航條背景圖片 [bar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault]; }
注:使用方法一相對比較「暴力」,好比當調用彈出系統相冊界面,讓用戶選擇某張照片之類的功能時,會發現系統自帶界面上的相關類也一同被修改了。所以使用哪一個方法實現效果得根據具體需求而決定了。對象