iOS動(dòng)態(tài)切換導(dǎo)航欄字體顏色

  前言:新版本項(xiàng)目UI界面上做了很大的改動(dòng)蚓庭,要求狀態(tài)欄字體顏色也要跟著界面做出動(dòng)態(tài)的改變妆档。在我對(duì)設(shè)計(jì)的理解中,狀態(tài)欄作為系統(tǒng)部件糯钙,不屬于App內(nèi)部元素粪狼,最好是不應(yīng)該被頻繁改動(dòng)的。直到設(shè)計(jì)把支付寶App拿到我面前搗鼓一番之后————好吧任岸,我改再榄。


先說(shuō)一下系統(tǒng)提供的狀態(tài)欄類型:
UIStatusBarStyleDefault : 狀態(tài)欄字體為黑色(默認(rèn))
UIStatusBarStyleLightContent :狀態(tài)欄字體為白色

動(dòng)態(tài)切換狀態(tài)欄的方式有兩種:
1、調(diào)用[UIApplication sharedApplication].statusBarStyle方法
2享潜、在vc中重寫(xiě)preferredStatusBarStyle方法

一困鸥、調(diào)用[UIApplication sharedApplication].statusBarStyle方法:
  使用這一方法的前提是,在info.plist中剑按,設(shè)置View controller-based status bar appearance值為NO(默認(rèn)為YES)疾就。

屏幕快照 2017-09-14 上午11.00.56.png

View controller-based status bar appearance為YES時(shí),該方法無(wú)效艺蝴;
View controller-based status bar appearance為NO時(shí)猬腰,該方法有效;
  然后在需要改變導(dǎo)航欄的VC中實(shí)現(xiàn)這一方法猜敢,例如姑荷,需要將當(dāng)前界面狀態(tài)欄變?yōu)榘咨渌J(rèn)為黑色:

- (void)viewWillAppear:(BOOL)animated{
    //
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
}

- (void)viewDidDisappear:(BOOL)animated{
    
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}

注:當(dāng)我們需要較頻繁的動(dòng)態(tài)切換界面上狀態(tài)欄樣式時(shí)缩擂,會(huì)發(fā)現(xiàn)這么寫(xiě)并沒(méi)有什么用??鼠冕,這時(shí)我們就需要使用第二種方法。

二胯盯、在vc中重寫(xiě)preferredStatusBarStyle方法:
在iOS7之后懈费,蘋(píng)果為我們提供了另一種設(shè)置狀態(tài)欄顏色的方法:- (UIStatusBarStyle)preferredStatusBarStyle,在需要改變狀態(tài)欄樣式的VC中重寫(xiě)這一方法即可:

 - (UIStatusBarStyle)preferredStatusBarStyle{
    
    return UIStatusBarStyleLightContent;
}

然而博脑,這只在我們當(dāng)前的VC沒(méi)有嵌套在UINavigationController中的情況下才有效憎乙;

原因是當(dāng)我們當(dāng)前的VC嵌套在UINavigationController中時(shí), - (UIStatusBarStyle)preferredStatusBarStyle消息發(fā)出后叉趣,系統(tǒng)只會(huì)調(diào)用UINavigationController中的該方法寨闹,而不會(huì)調(diào)用VC中的該方法。

解決方法:
創(chuàng)建一個(gè)UINavigationController的類別UINavigationController+Statubar君账,在該類別中重寫(xiě)- (UIStatusBarStyle)preferredStatusBarStyle方法:

#import "UINavigationController+StatusBar.h"

@implementation UINavigationController (StatusBar)

- (UIStatusBarStyle)preferredStatusBarStyle{
    
 //找到當(dāng)前棧中最上層的試圖,調(diào)用其preferredStatusBarStyle方法
    return [[self topViewController]preferredStatusBarStyle];
}

@end

然后在需要改變狀態(tài)欄風(fēng)格的視圖中實(shí)現(xiàn)- (UIStatusBarStyle)preferredStatusBarStyle方法:

- (UIStatusBarStyle)preferredStatusBarStyle{
    
    return UIStatusBarStyleLightContent;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末沈善,一起剝皮案震驚了整個(gè)濱河市乡数,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闻牡,老刑警劉巖净赴,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異罩润,居然都是意外死亡玖翅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)金度,“玉大人应媚,你說(shuō)我怎么就攤上這事〔录” “怎么了中姜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)跟伏。 經(jīng)常有香客問(wèn)我丢胚,道長(zhǎng),這世上最難降的妖魔是什么受扳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任携龟,我火速辦了婚禮,結(jié)果婚禮上勘高,老公的妹妹穿的比我還像新娘峡蟋。我一直安慰自己,他們只是感情好相满,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布层亿。 她就那樣靜靜地躺著,像睡著了一般立美。 火紅的嫁衣襯著肌膚如雪匿又。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天建蹄,我揣著相機(jī)與錄音碌更,去河邊找鬼。 笑死洞慎,一個(gè)胖子當(dāng)著我的面吹牛痛单,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播劲腿,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼旭绒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了焦人?” 一聲冷哼從身側(cè)響起挥吵,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎花椭,沒(méi)想到半個(gè)月后忽匈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡矿辽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年丹允,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了郭厌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雕蔽,死狀恐怖折柠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情萎羔,我是刑警寧澤液走,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站贾陷,受9級(jí)特大地震影響缘眶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜髓废,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一巷懈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧慌洪,春花似錦顶燕、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至频伤,卻和暖如春恳谎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背憋肖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工因痛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岸更。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓鸵膏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親怎炊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谭企,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容