1.iOS7之后 要想改變navigationbar的顏色 可以這樣子改
self.navigationController.navigationBar.barTintColor = [UIColor colorWithHexString:@"#3A3A3A" alpha:1.0f];
默認(rèn)帶有一定透明效果铁瞒,可以使用以下方法去除系統(tǒng)效果
[self.navigationController.navigationBar setTranslucent:NO];
2.改變UINavigationBar導(dǎo)航條標(biāo)題顏色和字體
iOS 5 以后 UINavigationController 可以 改變UINavigationBar導(dǎo)航條標(biāo)題顏色和字體
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor colorWithRed:0 green:0.7 blue:0.8 alpha:1], NSForegroundColorAttributeName,[UIColor colorWithRed:0 green:0.7 blue:0.8 alpha:1],NSShadowAttributeName,[NSValue valueWithUIOffset:UIOffsetMake(0, 0)], NSShadowAttributeName,[UIFont fontWithName:@"Arial-Bold" size:0.0], NSFontAttributeName,nil]];
其中 NSForegroundColorAttributeName和NSFontAttributeName 屬性是文字顏色和字體
3.改變狀態(tài)欄的顏色
公司項目需要將狀態(tài)欄的文字顏色設(shè)置為白色,以下方法即可
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
改變后需要及時刷新的調(diào)用
[viewController setNeedsStatusBarAppearanceUpdate];
如果沒有效果,需要在plist文件里設(shè)置
View controller-based status bar appearance ?=?NO
info.plist中 View controller-based status bar appearance這個屬性 View controller-based status bar appearance =NO 這個設(shè)置為:View Controller 不對status Bar 顯示進(jìn)行操作
4.在某些頁面控制navigationbar不顯示
在項目中有時候會遇到在有些頁面想隱藏navgationbar的情況,只要像這樣寫就可以了
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
5.圖片選擇器調(diào)用時候有關(guān)導(dǎo)航條的問題
有時候調(diào)用系統(tǒng)相冊的時候,如果我們整體導(dǎo)航條背景顏色是通過一張圖片進(jìn)行加載的話 那么相冊調(diào)用出來后癞尚,導(dǎo)航條的顏色也是會加載這張圖片的毡惜,但是如果整條導(dǎo)航填顏色是通過顏色色值來加載的話渊胸,這時候系統(tǒng)相冊調(diào)用出來的顏色就是系統(tǒng)默認(rèn)的橱健,導(dǎo)致白色導(dǎo)航條而钞,白色文字就會顯示不出來,從而影響用戶體驗拘荡;還有一種情況是臼节,調(diào)用系統(tǒng)相冊之后,導(dǎo)航條上的文字俱病,和取消按鈕都是顯示的英文官疲,跟我們整體風(fēng)格格格不入,因此我們需要重寫相冊導(dǎo)航條上的內(nèi)容亮隙、圖片和文字以及文字顏色.
(1)如果整體導(dǎo)航條是按照色值來的途凫,修改方法
// 實現(xiàn)navigationController的代理
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
viewController.navigationController.navigationBar.barTintColor = MainAppColor;
[viewController.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,[UIFont fontWithName:@"Helvetica Neue" size:19.0f], NSFontAttributeName,nil]];
viewController.navigationItem.rightBarButtonItem.tintColor = [UIColor whiteColor];
}
(2)如果顯示出來的是英文 我們想改成中文的
在調(diào)用系統(tǒng)相冊、相機(jī)發(fā)現(xiàn)是英文的系統(tǒng)相簿界面后標(biāo)題顯示“photos”溢吻,但是手機(jī)語言已經(jīng)設(shè)置顯示中文维费,在info.plist設(shè)置解決問題? info.plist里面添加Localized resources can be mixed YES 表示是否允許應(yīng)用程序獲取框架庫內(nèi)語言。