如何为状态栏设置渐变颜色
Posted
技术标签:
【中文标题】如何为状态栏设置渐变颜色【英文标题】:How to set Gradient color for statusbar 【发布时间】:2017-12-26 08:27:58 【问题描述】:代码:
extension UIApplication
class var statusBarBackgroundColor: UIColor?
get
return (shared.value(forKey: "statusBar") as? UIView)?.backgroundColor
set
(shared.value(forKey: "statusBar") as? UIView)?.backgroundColor = newValue
UIApplication.statusBarBackgroundColor = .blue
我正在尝试单独为状态栏设置渐变颜色。如何更改我的代码以设置渐变颜色。任何帮助将不胜感激。提前致谢
【问题讨论】:
你是指只有状态栏还是状态栏+导航栏? 仅状态栏.. 【参考方案1】:这就是我的管理方式。
let gradientLayer = CAGradientLayer()
gradientLayer.frame = CGRect(x:0, y:-20, width:375, height:64)
let colorTop = UIColor(red: 69/255, green: 90/255, blue: 195/255, alpha: 1.0).cgColor
let colorBottom = UIColor(red: 230/255, green: 44/255, blue: 75/255, alpha: 1.0).cgColor
gradientLayer.colors = [ colorTop, colorBottom]
gradientLayer.locations = [ 0.0, 1.0]
gradientLayer.frame = CGRect(x:0, y:-20, width:375, height:self.view.frame.height * 0.06)
let window: UIWindow? = UIApplication.shared.keyWindow
let view = UIView()
view.backgroundColor = UIColor.clear
view.translatesAutoresizingMaskIntoConstraints = false
view.frame = CGRect(x: 0, y: 0, width: (window?.frame.width)!, height: self.view.frame.height * 0.07)
view.layer.addSublayer(gradientLayer)
window?.addSubview(view)
那只会给状态栏后面的视图添加渐变
【讨论】:
因为我隐藏了导航控制器你的解决方案不起作用 当您隐藏导航控制器时,我已经编辑了答案以上是关于如何为状态栏设置渐变颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何在android中将状态栏背景设置为渐变色或drawable