有没有办法改变对UIVisualEffectView的影响?在我的应用程序中,我在Storyboards中创建了一个UIVisualEffectView,然后我想在usersettings上将其更改为Light或Dark ...
我只看到"initWithEffect"和"效果"属性是readonly :(
那么,关于如何解决这个问题的任何想法?
谢谢,Urkman
Hep*_*eps 11
实际上现在有可能做到这一点!
myVisualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
Run Code Online (Sandbox Code Playgroud)
你可以动画这个!
[UIView animateWithDuration:1.0 animations:^{
myVisualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight];
}];
Run Code Online (Sandbox Code Playgroud)
你甚至可以添加和删除模糊动画 - 几乎就像在Springboard上的Spotlight reaveal一样!只需将样式设置为nil即可逐步删除模糊效果.
Swift 4版本:
myVisualEffectView.effect = UIBlurEffect(style: .dark)
UIView.animate(withDuration: 1, animations: {
myVisualEffectView.effect = UIBlurEffect(style: .extraLight)
})
Run Code Online (Sandbox Code Playgroud)
小智 1
不幸的是,视图一旦创建就无法更改效果。
因此,如果您使用 UIVisualEffectsView 作为视图层次结构的容器,则需要将效果视图替换为使用另一种效果创建的新视图,并将层次结构移动到新容器。
例如,如果您使用 UIVisualEffectsView 只是为了模糊其背后的所有视图,则可以在故事板中创建两个模糊视图,将其中之一设置为隐藏,并根据用户设置更改其隐藏状态。
| 归档时间: |
|
| 查看次数: |
1200 次 |
| 最近记录: |