mark
公司部分界面更換了UI風(fēng)格蜡感,當(dāng)新舊碰撞蹬蚁,帶來(lái)的不僅僅是界面的不統(tǒng)一,還有我的手忙腳亂郑兴。缚忧。。
干貨杈笔,干貨,先看如何單獨(dú)設(shè)置糕非,再說(shuō)怎么在頁(yè)面跳轉(zhuǎn)間搞定它蒙具。
設(shè)置導(dǎo)航欄
設(shè)置 導(dǎo)航欄的顏色(其實(shí)不建議用此方法,會(huì)被系統(tǒng)蒙上一層灰色朽肥,造成跟設(shè)計(jì)要求的不一樣):
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
用 圖片做導(dǎo)航欄背景(這樣就愉快多了禁筏,給它什么圖案,就是什么圖案):
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"bai_beijing"] forBarMetrics:UIBarMetricsDefault];
設(shè)置導(dǎo)航欄 字體顏色:
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor]}];
看下源文件:
You may specify the font, text color, and shadow properties for the title in the text attributes dictionary, using the keys found in NSAttributedString.h.
如上衡招,你可以設(shè)置你喜歡的屬性篱昔,不只是顏色。以上始腾,對(duì)于簡(jiǎn)單的導(dǎo)航欄設(shè)置來(lái)說(shuō)州刽,就夠用了。
設(shè)置狀態(tài)欄
接下來(lái)浪箭,先看看 狀態(tài)欄顏色:
- UIStatusBarStyleDefault :黑色
- UIStatusBarStyleLightContent :白色
那么穗椅,它的 設(shè)置方法:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
這里需要注意的是,如果需要用上面的方法改變狀態(tài)欄奶栖,需要在info.plist中匹表,將View controller-based status bar appearance設(shè)為NO门坷。View controller-based status bar appearance 的默認(rèn)值是YES。如果View controller-based status bar appearance 為 YES 則設(shè)置方法 [UIApplication sharedApplication].statusBarStyle ([[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyle];)無(wú)效袍镀。
修改策略
在要改變的頁(yè)面- (void)viewWillAppear:(BOOL)animated; 中直接調(diào)用修改方法默蚌。當(dāng)返回上一個(gè)頁(yè)面時(shí),如果上一個(gè)頁(yè)面與該頁(yè)面所顯示的狀態(tài)欄苇羡,導(dǎo)航欄不同绸吸,那么應(yīng)該在
[self dismissViewControllerAnimated:YES completion:nil];
或
[self.navigationController popViewControllerAnimated:YES];
的同時(shí)調(diào)用修改函數(shù)。e.g.:
- (void)reSetStatusBarLightContent {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[[UINavigationBar appearance]setBackgroundImage:[UIImage imageNamed:@"abovebar_forall"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
}