fun*_*len 14 colors statusbar uinavigationbar ios sfsafariviewcontroller
我的应用程序使用深色导航栏颜色.因此我将状态栏颜色设置为白色(因此它具有很好的对比度).
我通过将barStyle设置为黑色(使状态栏变为白色)并将barTint设置为深红色来完成此操作.完美的工作.
我提出这样的一个SafariViewController
:
func openWebsite(urlString: String) {
if let url = NSURL(string: urlString) {
let svc = SFSafariViewController(URL: url)
svc.delegate = self
self.presentViewController(svc, animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,呈现的状态栏SafariViewController
仍为白色.这是一个问题,因为SVC
导航栏具有默认的白色透明iOS默认样式.所以状态栏基本上是不可见的.
我该如何解决这个问题?
有两种方法可以覆盖 viewController 中的 PreferredStatusBarStyle 并返回您想要的一种
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .Default
}
Run Code Online (Sandbox Code Playgroud)
或者你可以手动设置
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.None)
Run Code Online (Sandbox Code Playgroud)
然而,要通过sharedApplicaion设置它,您需要将其添加到您的plist中“查看基于控制器的状态栏外观”为NO