Ill*_*lep 3 objective-c ios uistatusbar
我想将status bar(显示时钟和电池的顶部的小条带)的颜色设置为带有白色文本的黑色背景.我怎样才能做到这一点 ?
到目前为止我的方法:
我在中添加了以下内容 info.plist
View controller-based status bar appearance --> NO
Run Code Online (Sandbox Code Playgroud)
并在 viewController
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleDefault;
}
Run Code Online (Sandbox Code Playgroud)
但是,风格不会改变.如何使状态栏变黑?
对于Xcode 8/iOS 10/Swift 3:
通过在状态栏下添加彩色UIView,在一个视图上临时更改状态栏背景颜色.我把这些线放进去了viewWillAppear().我的色调是白色的,透明度为45%,但您可以放入任何不透明或透明的UIColor值.
let statusView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 20))
statusView.backgroundColor = UIColor.white.withAlphaComponent(0.45)
self.view.addSubview(statusView)
Run Code Online (Sandbox Code Playgroud)
如果视图上有导航控制器,则可以将statusView添加到navigationController而不是视图.
您还可以传入UIScreen.main.bounds.size.width作为模拟状态栏背景视图的宽度.不要硬编码宽度,否则它不适合所有设备.
或者,您也可以使用此代码更改整个应用中的状态栏背景.请注意,即使放入viewWillAppear(),但是viewDidLoad(),当您向前/向后导航时,其他视图仍将采用更改的状态栏.
let statWindow = UIApplication.shared.value(forKey:"statusBarWindow") as! UIView
let statusBar = statWindow.subviews[0] as UIView
statusBar.backgroundColor = UIColor.white.withAlphaComponent(0.45)
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式使文本变白:
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Run Code Online (Sandbox Code Playgroud)
状态栏具有透明背景。没有办法改变它。您可以将视图固定在其下以用作背景。
| 归档时间: |
|
| 查看次数: |
9276 次 |
| 最近记录: |