我有一个原型细胞,我在它的UIVisualEffectView中放了一个ContentView。视觉效果视图的模糊风格是黑暗和活力关闭。然后,我使用IB将视觉效果视图的alpha设置为0,5。
然后,在运行时,我收到一个警告:
<UIVisualEffectView ...> is being asked to animate its opacity. This will cause the effect to appear broken until opacity returns to 1.我不明白为什么会有此警告,以及如何正确设置alpha属性。
发布于 2014-10-15 12:02:27
据我所知,您不能更改视觉效果视图的alpha值。阿尔法总是必须是一个。
发布于 2015-12-15 13:55:24
问题是你想要什么动画。如果是效果,则不能通过alpha属性将其动画化。但是,从iOS 9开始,您可以通过在动画块中设置效果来将其动画化。
UIVisualEffectView* view = [[UIVisualEffectView alloc] initWithFrame:self.view.bounds];
view.effect = nil;
[UIView animateWithDuration:0.3 animations:^{
view.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
}];或者,您也可以通过动画包装器视图的alpha来动画效果,就像其他答案中所建议的那样(甚至可以在iOS 8上工作)。
如果要对视觉效果视图(子视图)的内容进行动画化,则将contentView属性改为动画(应使用该属性添加效果视图的子视图)。
[UIView animateWithDuration:0.3 animations:^{
view.contentView.alpha = 1.0;
}];因此,总之,您不应该改变UIVisualEffectView本身的alpha,因为它很可能不是您想要的。
发布于 2014-11-25 10:24:23
可以通过设置背景色的alpha而不是视觉效果视图来实现所需的效果。子视图应该添加到视觉效果视图的视图中,并且不受背景模糊的影响。
必须在上面的视图效果视图选项中选择振动效果。
见图:

https://stackoverflow.com/questions/26325141
复制相似问题