【问题标题】:tweak intensity of blur effect inside UIVisualEffectView in Swift在 Swift 中调整 UIVisualEffectView 中模糊效果的强度
【发布时间】:2015-02-05 10:00:31
【问题描述】:

我正在使用此代码在我的视图中创建模糊效果:

let blur = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light))
blur.frame = CGRectMake(180, 10, 200, 750)
myView.addSubview(blur)

有没有什么办法可以调整产生模糊的高斯函数以达到不同程度的“失焦”效果?

【问题讨论】:

    标签: swift gaussian blurry uiblureffect uivisualeffectview


    【解决方案1】:

    实际UIBlurEffect 的半径无法更改,但有一个解决方法。

    更改UIVisualEffectViewalpha 组件,将产生微妙的模糊效果。

    let blur = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light))
    blur.frame = CGRectMake(180, 10, 200, 750)
    blur.alpha = 0.4
    myView.addSubview(blur)
    

    斯威夫特 3

    let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.extraLight)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    blurEffectView.alpha = 0.4
    blurEffectView.frame = self.bounds
    self.addSubview(blurEffectView)
    

    【讨论】:

    • Apple 建议不要使用 alpha 值。 alpha 值
    【解决方案2】:

    由于UIBlurEffect中没有其他参数,我认为唯一的方法是使用CIFilter预设CIGaussianBlur模糊背景View并使用其键inputRadius调整级别。
    如果你想达到和所谓的light/dark/ExtraLight一样的效果,你可以把这个过滤器和其他过滤器组合起来。

    【讨论】:

      最近更新 更多