gpt4 book ai didi

objective-c - 动画 UIVisualEffectView 模糊半径?

转载 作者:太空狗 更新时间:2023-10-30 03:22:07 27 4
gpt4 key购买 nike

正如标题所说,有没有办法为 UIVisualEffectView 的模糊半径设置动画?我在 View 后面有一个动态背景,所以不能使用 ImageEffects 添加...据我所知,唯一可以做到这一点的是为不透明度设置动画,但 iOS 提示说这样做会破坏 EffectView,所以它肯定似乎是个坏主意...任何帮助将不胜感激。

最佳答案

答案是肯定的。这是一个从无模糊 -> 模糊动画的例子:

// When creating your view...
let blurView = UIVisualEffectView()
// Later, when you want to animate...
UIView.animateWithDuration(1.0) { () -> Void in
blurView.effect = UIBlurEffect(style: .Dark)
}

这将使模糊半径在一秒内从零(完全透明,或者更确切地说 - 根本没有模糊效果)到默认半径(完全模糊)。并做反向动画:

UIView.animateWithDuration(1.0) { () -> Void in
blurView.effect = nil
}

生成的动画平滑地变换模糊半径,即使您实际上是在完全添加/删除模糊效果 - UIKit 只知道在幕后做什么。

请注意,这并非总是可行:直到最近(不确定何时),必须使用 UIVisualEffect 初始化 UIVisualEffectView,并且 effect 属性是只读的。现在,effect 既是可选的又是读/写的(虽然文档没有更新...),并且 UIVisualEffectView 包含一个空的初始化程序,使我们能够执行这些动画。

唯一的限制是您不能手动将自定义模糊半径分配给 UIVisualEffectView - 您只能在“无模糊”和“完全模糊”之间设置动画。

编辑: 如果有人感兴趣,我创建了一个 UIVisualEffectView 的子类,它可以让您完全控制模糊半径。需要注意的是,它使用私有(private) UIKit API,因此您可能不应该使用它提交应用程序以供审核。但是,它对于原型(prototype)或内部应用程序仍然很有趣且有用: https://github.com/collinhundley/APCustomBlurView

关于objective-c - 动画 UIVisualEffectView 模糊半径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29278400/

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