gpt4 book ai didi

swift - 如何设置 UIBlurEffectStyle.Light 的 BlurRadius

转载 作者:IT王子 更新时间:2023-10-29 04:59:30 27 4
gpt4 key购买 nike

我想知道如何设置 iOS 新 UIBlurEffectStyle.Light 的半径/模糊因子?我在文档中找不到任何内容。但我希望它看起来类似于经典的 UIImage+ImageEffects.h 模糊效果。

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)

let blur = UIBlurEffect(style: UIBlurEffectStyle.Light)
let effectView = UIVisualEffectView(effect: blur)
effectView.frame = frame
addSubview(effectView)
}

最佳答案

改变 alpha 并不是一个完美的解决方案。它不影响模糊强度。您可以设置从 nil 到目标模糊效果的动画,并手动设置时间偏移以获得所需的模糊强度。不幸的是,当应用程序从后台返回时,iOS 将重置动画偏移量。

谢天谢地,有一个适用于 iOS >= 10 的简单解决方案。您可以使用 UIViewPropertyAnimator。我没有注意到使用它有任何问题。当应用程序从后台返回时,我保持自定义模糊强度。以下是您可以如何实现它:

class CustomIntensityVisualEffectView: UIVisualEffectView {

/// Create visual effect view with given effect and its intensity
///
/// - Parameters:
/// - effect: visual effect, eg UIBlurEffect(style: .dark)
/// - intensity: custom intensity from 0.0 (no effect) to 1.0 (full effect) using linear scale
init(effect: UIVisualEffect, intensity: CGFloat) {
super.init(effect: nil)
animator = UIViewPropertyAnimator(duration: 1, curve: .linear) { [unowned self] in self.effect = effect }
animator.fractionComplete = intensity
}

required init?(coder aDecoder: NSCoder) {
fatalError()
}

// MARK: Private
private var animator: UIViewPropertyAnimator!

}

我还创建了一个要点:https://gist.github.com/darrarski/29a2a4515508e385c90b3ffe6f975df7

关于swift - 如何设置 UIBlurEffectStyle.Light 的 BlurRadius,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529500/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com