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

前端之家收集整理的这篇文章主要介绍了objective-c – 动画UIVisualEffectView模糊半径?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
正如标题所说,是否有一种方式来动画化UIVisualEffectView的模糊半径?我有一个动态的背景背后的视图,所以 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只是知道在幕后做什么.

请注意,这并不总是可能的:直到最近(不知道什么时候),UIVisualEffectView必须使用UIVisualEffect初始化,并且effect属性是只读的.现在,效果是可选的和读/写(虽然文档没有更新…),UIVisualEffectView包含一个空的初始化器,使我们能够执行这些动画.

唯一的限制是您无法手动将自定义模糊半径分配给UIVisualEffectView – 您只能在“无模糊”和“完全模糊”之间进行动画处理.

编辑:如果有人感兴趣,我创建了一个UIVisualEffectView的子类,可以让您完全控制模糊半径.需要注意的是它使用了一个私有的UIKit API,所以你可能不应该使用它提交应用程序进行审查.然而,它对原型或内部应用程序仍然很有用和有用:
https://github.com/collinhundley/APCustomBlurView

猜你在找的C&C++相关文章