亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Swift 3中設置狀態欄樣式

如何在Swift 3中設置狀態欄樣式

一只萌萌小番薯 2019-12-09 09:52:05
我正在使用Xcode 8.0 beta 4。在以前的版本中,UIViewController具有設置狀態欄樣式的方法public func preferredStatusBarStyle() -> UIStatusBarStyle但是,我發現它在Swift 3中變成了“只獲取變量”。public var preferredStatusBarStyle: UIStatusBarStyle { get } 如何提供在UIViewController中使用的樣式?
查看完整描述

3 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

適用于Xcode 10+和Swift 4.2+

這是iOS 7及更高版本的首選方法


在您的應用程序中Info.plist,將設置View controller-based status bar appearance為YES。


在每個視圖控制器中覆蓋preferredStatusBarStyle (Apple文檔)。例如:


override var preferredStatusBarStyle: UIStatusBarStyle {     

      return .lightContent

}

如果preferredStatusBarStyle根據視圖控制器內部發生的更改返回了不同的首選狀態欄樣式(例如,滾動位置或顯示的圖像是否為暗),則需要setNeedsStatusBarAppearanceUpdate()在狀態更改時調用。


iOS 7之前的版本,不建議使用的方法


蘋果已經棄用了此功能,因此將來會刪除它。使用上述方法,以便在下一個iOS版本發布時不必重寫它。


如果您的應用程序將支持在您的應用程序中Info.plist,請設置View controller-based status bar appearance為NO。


在appDelegate.swift的didFinishLaunchingWithOptions功能,加上:


UIApplication.shared.statusBarStyle = .lightContent

對于導航控制器


如果您使用導航控制器,并且希望使用每個視圖控制器的首選狀態欄樣式并將其設置View controller-based status bar appearance為YES應用程序的info.plist


extension UINavigationController {

   open override var preferredStatusBarStyle: UIStatusBarStyle {

      return topViewController?.preferredStatusBarStyle ?? .default

   }

}


查看完整回答
反對 回復 2019-12-09
  • 3 回答
  • 0 關注
  • 879 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號