นี่คือหลักเกณฑ์ / คำแนะนำของ Appleเกี่ยวกับการเปลี่ยนแปลงแถบสถานะ
นี่คือ - วิธีเปลี่ยนรูปแบบแถบสถานะ:
หากคุณต้องการตั้งค่ารูปแบบแถบสถานะระดับแอปพลิเคชันจากนั้นตั้งค่าUIViewControllerBasedStatusBarAppearance
เป็นNO
ในไฟล์ ".plist" ของคุณ
หากคุณต้องการตั้งค่ารูปแบบแถบสถานะที่ระดับตัวควบคุมมุมมองให้ทำตามขั้นตอนเหล่านี้:
- การตั้งค่า
UIViewControllerBasedStatusBarAppearance
ไปYES
ใน.plist
แฟ้มถ้าคุณจำเป็นต้องตั้งค่าสถานะสไตล์บาร์ในระดับ UIViewController เท่านั้น
ในฟังก์ชั่นเพิ่ม viewDidLoad - setNeedsStatusBarAppearanceUpdate
แทนที่ recommendedStatusBarStyle ในตัวควบคุมมุมมองของคุณ
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
กำหนดค่าของ. plist ตามระดับการตั้งค่าสไตล์แถบสถานะ
คุณสามารถตั้งค่าสีพื้นหลังสำหรับแถบสถานะระหว่างการเปิดแอปพลิเคชันหรือระหว่าง viewDidLoad ของตัวควบคุมมุมมองของคุณ
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
นี่คือผลลัพธ์: