麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > iOS > 正文

iOS狀態(tài)欄的顯示與隱藏的示例代碼

2019-10-21 18:40:17
字體:
供稿:網(wǎng)友

今天設(shè)計(jì)師跑來問iOS狀態(tài)欄的問題,由于之前沒有整理,只能“我確認(rèn)下給你回復(fù)”,確認(rèn)得有點(diǎn)久,略尷尬。。。好記性不如爛筆頭,希望能養(yǎng)成整理做筆記的好習(xí)慣。那么,閑話少說, 讓我們進(jìn)入正題。

我們使用xcode新建一個(gè) iOS工程 ,默認(rèn)情況下狀態(tài)欄是顯示的。

iOS,狀態(tài)欄,顯示,隱藏,代碼

隱藏某個(gè)控制器的狀態(tài)欄

最簡單地隱藏方法就是使用下面這段代碼

- (BOOL)prefersStatusBarHidden {  returnYES;}

全局隱藏狀態(tài)欄

上面代碼確實(shí)隱藏了對(duì)應(yīng)控制器的狀態(tài)欄,但是多數(shù)情況下我們的項(xiàng)目里面有很多控制器,如此一個(gè)個(gè)設(shè)置就略顯蛋疼,我們可以進(jìn)行全局設(shè)置。注釋掉上面代碼,在 Appdelegate 的 didFinishLaunchingWithOptions 里面添加如下代碼,并運(yùn)行。

[[UIApplicationsharedApplication] setStatusBarHidden:YES];

結(jié)果有點(diǎn)尷尬,狀態(tài)欄還在。。打開 info.plist 找到參數(shù)

View controller-based status bar appearance 。

顧名思義,該參數(shù)決定我們項(xiàng)目狀態(tài)欄的顯隱藏是否以各控制器的設(shè)置為準(zhǔn)(各自為政或統(tǒng)一管理)。將其設(shè)置為NO,再次運(yùn)行。嗯,這次是我們想要的結(jié)果了。這時(shí)候如果注釋掉 [[UIApplicationsharedApplication] setStatusBarHidden:YES]; 回到最初的 prefersStatusBarHidden 方案,你會(huì)發(fā)現(xiàn)狀態(tài)欄隱藏?zé)o效了,因?yàn)檫@個(gè)時(shí)候我們項(xiàng)目的狀態(tài)欄服從統(tǒng)一管理,具體控制器的配置對(duì)其無效。

隱藏啟動(dòng)頁狀態(tài)欄

眼尖的同學(xué)可能會(huì)發(fā)現(xiàn)在我們?cè)O(shè)置了 [[UIApplication sharedApplication] setStatusBarHidden:YES] 和 View controller-based status bar appearance -> NO 之后app展示啟動(dòng)頁的過程中狀態(tài)欄仍然顯示著。額。。。其實(shí)也對(duì),因?yàn)槲覀冊(cè)?nbsp;didFinishLaunchingWithOptions 才去設(shè)置隱藏的嘛。那么如何隱藏啟動(dòng)過程的狀態(tài)欄呢?再次打開 info.plist ,這次我們找到 Status bar is initially hidden 再次顧名思義。。。你懂的,將其設(shè)置為YES,然后運(yùn)行,Bingo! 狀態(tài)欄見鬼去吧。?在沒有進(jìn)行對(duì)應(yīng)設(shè)置的前提下,啟動(dòng)頁展示過程中狀態(tài)欄的顯隱和啟動(dòng)后狀態(tài)欄的顯隱是相對(duì)獨(dú)立的。關(guān)于啟動(dòng)后狀態(tài)欄的顯隱的設(shè)置參照上面:point_up_2:兩點(diǎn)哈。默認(rèn)情況下,若沒有進(jìn)行任何代碼設(shè)置,在 View controller-based status bar appearance -> YES時(shí),啟動(dòng)后的狀態(tài)欄默認(rèn)顯示,否則將跟隨 Status bar is initially hidden 狀態(tài)。

全局隱藏情境下的個(gè)別展示

那么,問題來了,如果我們通過全局設(shè)置隱藏了狀態(tài)欄,而項(xiàng)目中又有個(gè)別一兩個(gè)控制偏偏器要秀一下狀態(tài)欄這怎么搞?

這種情況下就需要“宏觀調(diào)控”了,“全局”的坑還得“全局”來填,我們可以在對(duì)應(yīng)要隱藏的控制器里面的 viewWillAppear 方法內(nèi)設(shè)置 [[UIApplicationsharedApplication] setStatusBarHidden:YES] ,當(dāng)然為了不影響我們其他的控制器狀態(tài)欄展示,應(yīng)該在 viewWillDisappear 內(nèi)將其置為進(jìn)入前的狀態(tài) [[UIApplicationsharedApplication] setStatusBarHidden:<#before status#>] ;

總結(jié):

View controller-based status bar appearance 控制App狀態(tài)欄顯隱接受全局配置(NO)或者各控制器各自配置(YES)。 [[UIApplicationsharedApplication]setStatusBarHidden:hidden] ,必須在 View controller-based status bar appearance == NO 條件下才能生效。相應(yīng)的 prefersStatusBarHidden 為局部配置項(xiàng),控制對(duì)應(yīng)控制器狀態(tài)欄顯隱,必須在 View controller-based status bar appearance == YES 才生效。 設(shè)置 Status bar is initially hidden -> YES 可以隱藏啟動(dòng)頁展示過程的狀態(tài)欄。

demo

今天就到這吧,趕緊跟設(shè)計(jì)師交差。有什么錯(cuò)誤和缺漏歡迎指正,補(bǔ)充。( _ )/

PS: 感謝哇丶啦咔咔的糾正哈,文中相應(yīng)的錯(cuò)誤與不當(dāng)描述已經(jīng)更正,啟動(dòng)頁展示過程中狀態(tài)欄的顯隱是相對(duì)獨(dú)立的,主要取決于 Status bar is initially hidden 的設(shè)置。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久男| 中文字幕电影免费播放 | 欧美日韩在线视频一区 | 精品一区二区三区在线观看国产 | 中文字幕涩涩久久乱小说 | 午夜精品福利在线观看 | 日本成人在线免费 | 成人国产综合 | 99国产精品白浆在线观看免费 | 伊人久操视频 | 免费看污视频在线观看 | 毛片免费在线播放 | 国产成人精品网站 | 国产精品手机在线亚洲 | 精品一区二区三区日本 | 精品一区免费 | jizzyouxxxx | 亚洲午夜影院在线观看 | 国产在线地址 | 九九热精品在线 | hdbbwsexvideo | 羞羞网站 | av在线免费观看播放 | 中国洗澡偷拍在线播放 | 黄色aaa视频 | 成人午夜精品久久久久久久蜜臀 | 欧美成人一区二区视频 | 成人毛片免费 | 99精品视频久久精品视频 | 国产成人精品免费视频大全最热 | 日本在线播放一区 | 国产精品二区高清在线 | 久久久久久久91 | 在线看成人av | 欧美成人一级 | 精品国产一区三区| 91精品国产一区二区三区四区在线 | 日本大片在线播放 | 日本在线免费观看视频 | 国产中文av在线 | 色婷婷久久一区二区 |