【轉(zhuǎn)】iOS控件 — 狀態(tài)欄 Status Bar

轉(zhuǎn)載鏈接:http://www.itdecent.cn/p/32d0048ff2bb

一、樣式

1. StatusBar有兩種樣式: (默認(rèn)高度為20)

UIStatusBarStyleDefault :

UIStatusBarStyleDefault.png

UIStatusBarStyleLightContent

UIStatusBarStyleLightContent.png

2. 改變狀態(tài)欄文字顏色方法:

方法1:直接設(shè)置storyboard的controller設(shè)置:

storyboard設(shè)置.png

方法2:代碼設(shè)置,在UIViewController中重載: (個(gè)別頁面改變的話,建議用這種方法!)

-(UIStatusBarStyle)preferredStatusBarStyle{returnUIStatusBarStyleLightContent;}

這個(gè)方法不能直接調(diào)用,在需要改變樣式的地方調(diào)用:

**[self setNeedsStatusBarAppearanceUpdate] **

示例:

-(void)viewWillAppear:(BOOL)animated{[selfsetNeedsStatusBarAppearanceUpdate];}

方法3:整個(gè)應(yīng)用的狀態(tài)欄顏色統(tǒng)一設(shè)置

在info.plist中 View controller-based status bar appearance 設(shè)為NO(不設(shè)置時(shí)默認(rèn)為YES),利用[UIApplication sharedApplication].statusBarStyle(優(yōu)先)調(diào)節(jié)。

info.plist.png

在AppDelegate.m中:(也可根據(jù)不同view個(gè)別添加到不同位置調(diào)節(jié))

[UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleLightContent;//? 或:[UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleDefault;//? 或(帶動(dòng)畫效果,一般在willappear/willdisappear里設(shè)置)[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault animated:YES];

方法4:如果有navigationbar,則可 設(shè)置navigationbarstyle去調(diào)節(jié)statusbar的顏色

通過storyboard調(diào)節(jié)navigationBarStyle

或代碼:

[viewController.navigationBar setBarStyle:UIBarStyleBlack];

二、StatusBar的顯示和隱藏

1. 個(gè)別頁面顯示和隱藏

推薦方法:

顯示和隱藏StatusBar只要在UIViewController中重載:

-(BOOL)prefersStatusBarHidden{returnYES;}

同樣式改變一樣需要調(diào)用**[self setNeedsStatusBarAppearanceUpdate] **方法.

補(bǔ)充:

如果iOS6和iOS7都支持,則處理方式如下:

1)如果info.plist中 View controller-based status bar appearance 設(shè)為NO。

則在iOS6和iOS7都是用下面的方法隱藏status bar。

[[UIApplication sharedApplication]setStatusBarHidden:YESwithAnimation:NO];

2)如果View controller-based status bar appearance 設(shè)為YES。(默認(rèn))

則需要判斷當(dāng)前是iOS6還是iOS7。

如果是iOS6,則還通過sharedApplication隱藏。

如果是iOS7,則用setNeedsStatusBarAppearanceUpdate的方式來隱藏status bar。

2. 全局默認(rèn)無StatusBar

需要在項(xiàng)目配置info.plist文件總將Status bar is initially hidden 字段設(shè)置為 YES;并添加View controller-based status bar appearance 字段, 并將值設(shè)置為 NO:

info.plist.png

也可和上面一樣設(shè)置來控制StatusBar全局隱藏:

[[UIApplication sharedApplication]setStatusBarHidden:YES];

三、動(dòng)畫效果

現(xiàn)在有兩種動(dòng)畫效果:

UIStatusBarAnimationFade

UIStatusBarAnimationSlide.

從他們的名字可以得知他的具體是什么樣的效果。

實(shí)現(xiàn)動(dòng)畫需要重載:

-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation{returnUIStatusBarAnimationSlide;}

但是重載這個(gè)方法后,并沒有動(dòng)畫效果。

這時(shí),我們需要把[self setNeedsStatusBarAppearanceUpdate] 放在動(dòng)畫block中執(zhí)行:

[UIView animateWithDuration:0.3animations:^{[selfsetNeedsStatusBarAppearanceUpdate];}];

這樣動(dòng)畫效果就出現(xiàn)了。

ps: 有時(shí)有特殊的要求,需要對StatusBar的背景色進(jìn)行改變,則可參考下面簡書的一篇文章,感覺不錯(cuò):

ios 狀態(tài)欄statusBar的背景顏色

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、樣式 1. StatusBar有兩種樣式: (默認(rèn)高度為20) UIStatusBarStyleDefault...
    朱_源浩閱讀 5,440評論 3 12
  • 狀態(tài)欄: 導(dǎo)論: ios上狀態(tài)欄:顯示信號 、時(shí)間、電池狀態(tài)的20像素的位置 狀態(tài)欄分為前景和背景部分前景部分:就...
    Kasign閱讀 4,022評論 0 0
  • 【iOS 開發(fā)】Status Bar 狀態(tài)欄設(shè)置匯總 狀態(tài)欄 個(gè)人覺得 iOS 的 Status Bar 狀態(tài)欄也...
    Cocojiang閱讀 958評論 0 1
  • ios上狀態(tài)欄 就是指的最上面的20像素高的部分 狀態(tài)欄分前后兩部分,要分清這兩個(gè)概念,后面會(huì)用到: 前景部分:就...
    SimpleBK閱讀 3,104評論 1 3
  • 今天又去上了一節(jié)美術(shù)課,這是我今天的新作,還沒完全涂完,有些細(xì)節(jié)還待修整,但是內(nèi)心卻滿心歡喜。 30歲開始畫畫,沒...
    愛華zong閱讀 166評論 0 1

友情鏈接更多精彩內(nèi)容