繁体   English   中英

状态栏模糊视图(半透明)在Swift 4.2 iOS 12中

[英]Status bar Blur view (Translucent ) in swift 4.2 ios 12

我试图根据状态背景来模糊状态栏,就像我们下拉状态栏时一样。 就像看到的一样

        let statusBarFrame = UIApplication.shared.statusBarFrame
        let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
        visualEffectView.frame = statusBarFrame
        view.addSubview(visualEffectView)

我尝试了所有样式,但是即使我从情节提要中的情节提要效果演示中尝试过,它也会变为半透明,但即使在我的“ 降低透明度”中也已启用,它并未更改为半透明

在此处输入图片说明

我想在stausbar中实现

在此处输入图片说明

但它只给出一个白色的条

您可以通过以下代码获取statusBar视图,然后尝试添加到此处的视觉效果

     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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM