答案 0 :(得分:1)
我们完全可以使用动画师以正确的预期外观做到这一点
用法:
let blurEffectView = BlurEffectView()
view.addSubview(blurEffectView)
BlurEffectView 实现:
class BlurEffectView: UIVisualEffectView {
var animator = UIViewPropertyAnimator(duration: 1, curve: .linear)
override func didMoveToSuperview() {
guard let superview = superview else { return }
backgroundColor = .clear
frame = superview.bounds //Or setup constraints instead
setupBlur()
}
private func setupBlur() {
animator.stopAnimation(true)
effect = nil
animator.addAnimations { [weak self] in
self?.effect = UIBlurEffect(style: .dark)
}
animator.fractionComplete = 0.1 //This is your blur intensity in range 0 - 1
}
deinit {
animator.stopAnimation(true)
}
}
答案 1 :(得分:0)
我知道这已经很晚了,但是如果您只是在模态演示中使用模糊,则Apple有一个内置的UIModalPresentationStyle,称为blurOverFullScreen,效果很好。
只需将父控制器的modalPresentationStyle设置为.blurOverFullScreen并显示新的视图控制器。如果新视图的尺寸小于屏幕,则应模糊背景,就像在图片中看到的那样。
答案 2 :(得分:0)