Swift — 玩玩 Status Bar 狀態列

Jeremy Xue
4 min readJun 9, 2018

--

與配色不搭的 Status Bar

我們有時候在設計完成我們的 APP 畫面之後,才發現我們的狀態列 Status Bar 被遮住、配色不搭或是顏色太相近了。所以我們需要適時的修改我的們 Status Bar 的顏色或是讓他不顯示,讓我們開始修改吧。

事前準備

首先我們先到 Xcode 中的 Info.plist ,在我們的 Key 新增一項 View controller-based status bar appearance:

新增 View controller-based status bar appearance

之後我們將屬性的 Boolean 值從原本預設的 YES設值為 NO:

View controller-based status bar appearance 的 Boolean 值設為 YES

透過介面修改 Status Bar

結束之後我們到我們 Project 的 General 的 Status Bar Style 選擇我們想要的樣式:

選擇 Status Bar Style

當我們把 Status Bar Style 修改成 Light 之後看看成果:

Light Style

你也可以透過到 Info.plist 再次尋找一個 Key 叫做 Status Bar Style,新增之後我們可以直接選取我們想要的樣式,也可以達成一樣的效果:

選擇 Status bar style

透過程式碼修改

假如要修改全局狀態欄顏色被修改,那麼就在 ViewController 的 viewDidLoad 或是 AppDelegate 的 didFinishLaunchingWithOptions launchOptions 底下撰寫:

UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent

不顯示狀態列

我們可以在剛剛的地方把 Hide status bar 給打勾,來隱藏狀態列:

成果如下:

不顯示 Status Bar

修改單一 Status Bar

那麼如果我們只想要修改單一頁面的 Status Bar 該如何呢?

我們可以直接在該 ViewController 下執行這段程式碼:

// 將 Status Bar 修改為 lightoverride var preferredStatusBarStyle: UIStatusBarStyle {return UIStatusBarStyle.lightContent}

若是不要顯示單一的 Status Bar 也是相同道理,在該 ViewController 加上:

// 將 Status Bar 隱藏override var prefersStatusBarHidden: Bool {return true}

本次的教學都到這邊結束,相信大家都可以很快速地操作自訂或修改狀態欄的效果了。

--

--

Jeremy Xue
Jeremy Xue

Written by Jeremy Xue

Hi, I’m Jeremy. [好想工作室 — iOS Developer]

No responses yet