iOS Swift 4 状态栏 - 禁用半透明
iOS Swift 4 Status bar - disable Translucent
我正在尝试让我的 iOS (webView) 应用程序的状态栏不是半透明的。
我在 func viewDidLoad():
中尝试了这个
self.navigationController?.navigationBar.isTranslucent = false
在 appDelegate 中:
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().backgroundColor = .white
这是我滚动页面时得到的结果..
我不认为你可以玩状态栏半透明。但是,您可能想要隐藏它。将以下代码粘贴到您的 ViewController:
override var prefersStatusBarHidden: Bool {
return true
}
如果它不起作用,请检查您的 Info.plist
状态栏外观是否基于 ViewController。添加:
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
您不能更改状态栏的这些属性。你只能设置,.default,.lightContent。但是如果你愿意,你可以在它下面放置一个视图,它不是半透明的并且有背景颜色。像这样:
let statusBarFrame = UIApplication.shared.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
那可以在你viewDidLoad()
的方法里ViewController
Swift 5.1 iOS 13.0 以防当前弃用...
if #available(iOS 13.0, *) {
let window = UIApplication.shared.windows.filter {[=10=].isKeyWindow}.first
let statusBarFrame = window?.windowScene?.statusBarManager?.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame!)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
} else {
//Below iOS13
let statusBarFrame = UIApplication.shared.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
}
当我尝试将视图从上方滑入屏幕时,这为我解决了这个问题,但在它设置动画时没有在状态栏上看到它:
view.clipsToBounds = true
我正在尝试让我的 iOS (webView) 应用程序的状态栏不是半透明的。
我在 func viewDidLoad():
中尝试了这个self.navigationController?.navigationBar.isTranslucent = false
在 appDelegate 中:
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().backgroundColor = .white
这是我滚动页面时得到的结果..
我不认为你可以玩状态栏半透明。但是,您可能想要隐藏它。将以下代码粘贴到您的 ViewController:
override var prefersStatusBarHidden: Bool {
return true
}
如果它不起作用,请检查您的 Info.plist
状态栏外观是否基于 ViewController。添加:
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
您不能更改状态栏的这些属性。你只能设置,.default,.lightContent。但是如果你愿意,你可以在它下面放置一个视图,它不是半透明的并且有背景颜色。像这样:
let statusBarFrame = UIApplication.shared.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
那可以在你viewDidLoad()
的方法里ViewController
Swift 5.1 iOS 13.0 以防当前弃用...
if #available(iOS 13.0, *) {
let window = UIApplication.shared.windows.filter {[=10=].isKeyWindow}.first
let statusBarFrame = window?.windowScene?.statusBarManager?.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame!)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
} else {
//Below iOS13
let statusBarFrame = UIApplication.shared.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
}
当我尝试将视图从上方滑入屏幕时,这为我解决了这个问题,但在它设置动画时没有在状态栏上看到它:
view.clipsToBounds = true