iPhone的状态栏,在开发人员眼中分两部分:1.前景;2.背景;
- 前景:顶部的要素(电池、时间、信号...)
- 背景:背景色、背景图片
按阶段分也有两部分:1.启动过程中;2.启动后视图中。
- 启动:和系统模式有关,设置 - 显示与亮度(浅色时前景为黑色,深色时前景为白色。):
修改前景
只修改启动阶段
默认情况下随系统设置变化,我们可以在工程配置中将其固定。
或者在info.plist中添加
Status bar style
,选择相应的样式,两种方法二选一
修改进入页面后
统一修改,所有页面都一样:
- 修改Status Bar Style:
-
在info.plist中添加
View controller-based status bar appearance
并设置成NO
。意思是是否根据视图变化。选为NO,即不管控制器内容是什么颜色都统一
单独页面单独修改:
严格意义上说,颜色不是手动设置成某一种Dark或Light。而是个别页面根据背景色自动变化。如果没在info.plist中添加过View controller-based status bar appearance
,则默认就是自动改变。如果设置了,则将值设置为YES。
在info.plist中添加View controller-based status bar appearance
并设置成YES
。即根据控制器内容,改变状态栏前景颜色。
修改背景
设置一个纯色View,放在页面的顶部,充当状态栏背景。
lazy var statusBarBgView: UIView = {
let view = UIView(frame: CGRectMake(0, 0, screenWidth, statusBarHeight))
view.backgroundColor = .white
return view
}()
设置一个渐变背景色
lazy var statusBarBgView1: UIView = {
let statusBarBgView = UIView(frame: CGRectMake(0, 0, screenWidth, statusBarHeight))
let subLayer = CAGradientLayer()
subLayer.frame = statusBarBgView.bounds
let colors = [UIColor.red.cgColor, UIColor.blue.cgColor]
subLayer.colors = colors
subLayer.startPoint = CGPoint(x: 0, y: 0)
subLayer.endPoint = CGPoint(x: 1, y: 0)
statusBarBgView.layer.addSublayer(subLayer)
return statusBarBgView
}()
设置一个背景图片
lazy var statusBarBgView2: UIImageView = {
let imageView = UIImageView(image: UIImage(named: "img_qrcode_visitor_bg"))
imageView.contentMode = .top
imageView.clipsToBounds = true
imageView.frame = CGRectMake(0, 0, screenWidth, statusBarHeight)
return imageView
}()
网友评论