首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改对UIVisualEffectView的影响

更改对UIVisualEffectView的影响
EN

Stack Overflow用户
提问于 2015-01-23 00:19:53
回答 2查看 1.5K关注 0票数 7

有没有办法改变UIVisualEffectView上的效果?在我的应用程序中,我在故事板中创建了一个UIVisualEffectView,然后我想将其更改为toLight或Dark on usersettings...

我只看到一个"initWithEffect“,而"effect”属性是只读的:(

那么,有没有办法解决这个问题呢?

谢谢,厄克曼

EN

回答 2

Stack Overflow用户

发布于 2016-06-17 07:18:16

实际上,现在有可能做到这一点!

代码语言:javascript
复制
myVisualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];

你可以让它动起来!

代码语言:javascript
复制
[UIView animateWithDuration:1.0 animations:^{
    myVisualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight];
}];

你甚至可以动画模糊,添加和删除-几乎就像在Spotlight reaveal on Springboard!只需将样式设置为nil即可逐渐消除模糊效果。

Swift 4版本:

代码语言:javascript
复制
myVisualEffectView.effect = UIBlurEffect(style: .dark) 

UIView.animate(withDuration: 1, animations: {
    myVisualEffectView.effect = UIBlurEffect(style: .extraLight)
})
票数 13
EN

Stack Overflow用户

发布于 2015-06-03 02:51:52

遗憾的是,视图一旦创建就无法更改效果。

因此,如果您使用UIVisualEffectsView作为视图层次结构的容器,则需要用新的effects视图替换effects视图,并使用另一个effect创建新的effects视图,然后将层次结构移动到新的容器。

如果您使用UIVisualEffectsView只是为了模糊它背后的所有视图,例如,您可以在情节提要中创建两个模糊视图,将其中一个设置为隐藏,并根据用户设置更改其隐藏状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28093643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档