Cách cài đặt status bar style ở iOS 7 trở lên
Published in
1 min readJan 20, 2020
- Trường hợp setting status bar style của toàn app, không phụ thuộc vào từng view controller
- Trong Info.plist thêm vào key:
UIViewControllerBasedStatusBarAppearance
với giá trị làNO
- Ở Project Settings/General: Chọn kiểu cho
Status Bar Style
. - Có 3 kiểu:
Default
: Phụ thuộc vào UserInterfaceStyle là dark hay light thì màu của status bar sẽ thay đổi tương ứng là trắng hoặc đenLight Content
: Màu của status bar luôn là trắngDark Content
: Màu của status bar luôn là đen (từ iOS 13 trở lên mới có loại này)
2. Trường hợp setting status bar style phụ thuộc vào từng view controller
- Trong
Info.plist
thêm vào key:UIViewControllerBasedStatusBarAppearance
với giá trị làYES
- Thêm vào view controller muốn thay đổi status bar style:
override var preferredStatusBarStyle: UIStatusBarStyle {
return // Trả về status bar style
}
- Nếu view controller nằm trong navigation controller thì phải cài đặt cho
UINavigationController
như sau:
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
- Nếu muốn thay đổi cho view controller đang được present thì phải present với
modalPresentationStyle
làfullScreen
:
controller.modalPresentationStyle = .fullScreen
Nếu không dùng kiểu fullScreen
thì sẽ lấy status bar style của presenting view controller
- Trường hợp
preferredStatusBarStyle
không nhận thì xem view controller hiện tại hoặcUINavigationController
hiện tại có phải làrootViewController
củawindow
không, nếu không thì cần set nó làrootViewController