swift 4.2 ios 12中的状态栏模糊视图(半透明)
Posted
技术标签:
【中文标题】swift 4.2 ios 12中的状态栏模糊视图(半透明)【英文标题】:Status bar Blur view (Translucent ) in swift 4.2 ios 12 【发布时间】:2019-05-16 09:38:20 【问题描述】:我试图根据背景模糊状态栏,就像我们拉下状态栏时一样。就像是看穿了
let statusBarFrame = UIApplication.shared.statusBarFrame
let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
visualEffectView.frame = statusBarFrame
view.addSubview(visualEffectView)
我尝试了所有样式,但它确实变成了半透明 即使我尝试在情节提要中显示情节提要效果,但在模拟器中却没有尝试,甚至我的 Reduce Transparency 也已打开
我想在状态栏中实现这一点
但它只给出一个白条
【问题讨论】:
【参考方案1】:您可以通过以下代码获取您的状态栏视图,然后尝试添加到视觉效果,如here
let statWindow = UIApplication.shared.value(forKey:"statusBarWindow") as! UIView
let statusBar = statWindow.subviews[0] as UIView
statusBar.backgroundColor = UIColor(red: 213 / 255.0, green: 0 / 255.0, blue: 0 / 255.0, alpha: 0.7)
或
extension UINavigationBar
func installBlurEffect()
isTranslucent = true
setBackgroundImage(UIImage(), for: .default)
let statusBarHeight: CGFloat = UIApplication.shared.statusBarFrame.height
var blurFrame = bounds
blurFrame.size.height += statusBarHeight
blurFrame.origin.y -= statusBarHeight
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
blurView.isUserInteractionEnabled = false
blurView.frame = blurFrame
blurView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
addSubview(blurView)
blurView.layer.zPosition = -1
用法
navigationController?.navigationBar.installBlurEffect()
【讨论】:
兄弟,我不是要更改状态栏的文本颜色,而是要更改背景以模糊视图,就像我们在 iPhone 的上拉和下拉栏视图中看到的那样,我不是使用导航栏我不知道如何附加图像以便显示 编辑了我的答案,请检查 不,您分享的链接不起作用以上是关于swift 4.2 ios 12中的状态栏模糊视图(半透明)的主要内容,如果未能解决你的问题,请参考以下文章
如何使导航栏和状态栏模糊(UIBlurEffect)? iOS,斯威夫特 3
状态栏样式不会因单个视图而改变 - Swift 2/iOS9