加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 05:44:36 所属栏目:百科 来源:网络整理
导读:正如标题所说,是否有一种方式来动画化UIVisualEffectView的模糊半径?我有一个动态的背景背后的视图,所以 ImageEffects添加不能使用…唯一可以做到这一点,我知道的是动画的不透明度,但是iOS抱怨说这样做会打破EffectView,所以它绝对似乎是一个坏主意…任何帮
正如标题所说,是否有一种方式来动画化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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读