我正在使用Xcode 8.0 beta 4。
在之前的版本中,UIViewController有方法可以设置状态栏样式。
public func preferredStatusBarStyle() -> UIStatusBarStyle
然而,我发现在Swift 3中它变成了一个 "仅获取变量"。
public var preferredStatusBarStyle: UIStatusBarStyle { get }
我该如何为我的UIViewController提供样式?
我正在使用Xcode 8.0 beta 4。
在之前的版本中,UIViewController有方法可以设置状态栏样式。
public func preferredStatusBarStyle() -> UIStatusBarStyle
然而,我发现在Swift 3中它变成了一个 "仅获取变量"。
public var preferredStatusBarStyle: UIStatusBarStyle { get }
我该如何为我的UIViewController提供样式?
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {
@IBOutlet weak var webView: WKWebView!
var hideStatusBar = true
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
let myURL = URL(string: "https://www.apple.com/")
let myRequest = URLRequest(url: myURL!)
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
webView.load(myRequest)
}
}
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
对于Objective-C,只需在您的应用程序didFinishLaunch方法中添加此行代码即可
UIApplication.sharedApplication.statusBarStyle = UIStatusBarStyleLightContent;
Swift 3
要在整个应用程序中设置相同的导航栏外观,您可以在AppDelegate.swift中执行以下操作:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
setupNavigationBarAppearence()
return true
}
private func setupNavigationBarAppearence(){
let navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.isTranslucent = false
//nav bar color
navigationBarAppearace.barTintColor = UIColor.primaryColor()
//SETS navbar title string to white
navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
//Makes the batery icon an any other icon of the device to white.
navigationBarAppearace.barStyle = .black
}
var preferredStatusBarStyle: UIStatusBarStyle = .lightContent
- Anbu.Karthik