有没有办法改变UIVisualEffectView上的效果?在我的应用程序中,我在故事板中创建了一个UIVisualEffectView,然后我想将其更改为toLight或Dark on usersettings...
我只看到一个"initWithEffect“,而"effect”属性是只读的:(
那么,有没有办法解决这个问题呢?
谢谢,厄克曼
发布于 2016-06-17 07:18:16
实际上,现在有可能做到这一点!
myVisualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];你可以让它动起来!
[UIView animateWithDuration:1.0 animations:^{
myVisualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight];
}];你甚至可以动画模糊,添加和删除-几乎就像在Spotlight reaveal on Springboard!只需将样式设置为nil即可逐渐消除模糊效果。
Swift 4版本:
myVisualEffectView.effect = UIBlurEffect(style: .dark)
UIView.animate(withDuration: 1, animations: {
myVisualEffectView.effect = UIBlurEffect(style: .extraLight)
})发布于 2015-06-03 02:51:52
遗憾的是,视图一旦创建就无法更改效果。
因此,如果您使用UIVisualEffectsView作为视图层次结构的容器,则需要用新的effects视图替换effects视图,并使用另一个effect创建新的effects视图,然后将层次结构移动到新的容器。
如果您使用UIVisualEffectsView只是为了模糊它背后的所有视图,例如,您可以在情节提要中创建两个模糊视图,将其中一个设置为隐藏,并根据用户设置更改其隐藏状态。
https://stackoverflow.com/questions/28093643
复制相似问题