iOS:使用UIBlurEffect过渡动画?

时间:2014-10-29 18:00:54

标签: ios objective-c animation uivisualeffectview

我使用iOS 8中实现的UIBlurEffect来轻松模糊屏幕。但是,我遇到了一个问题,因为我无法弄清楚如何将这种模糊效果变成动画而不是即时效果。

我尝试使用它,但它没有工作:

[UIView animateWithDuration:3 animations:^
{
    visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
    visualEffectView.frame = self.view.frame;
    [self.view addSubview:visualEffectView];
}];

虽然它确实显示了效果,但它在3秒内没有动画效果。

2 个答案:

答案 0 :(得分:2)

您没有看到任何动画,因为您没有任何动画效果。 UIView动画依赖于使用现有视图的可动画属性。您没有动画任何属性:您只是在调用addSubview:

答案 1 :(得分:0)

首先,您要定义UIVisualEffectView()并定义其框架,然后您可以使用效果为blurView设置动画:

let blurView = UIVisualEffectView()
blurView.frame = self.view.bounds

UIView.animate(withDuration: 0.5) {
   blurView.effect = UIBlurEffect(style: .light)
}