如何暂时禁用一个视图及其所有子视图的动画效果?

7

我有一些带有子视图的视图,并且正在进行动画。在使用 shouldRasterize = YES 之前,我想要禁用动画,以便该视图层次结构子分支内的所有动画命令都将被忽略。

有没有简单的方法可以做到这一点?

3个回答

10

你可以在UIView中使用下一个静态方法:

+ (void)setAnimationsEnabled:(BOOL)enabled

详细信息请参见参考文献


请注意,只有在动画开始之前设置才有效。如果动画已经开始,则无效。 - Hot Licks

7

正如Victor所说,你可以使用UIView的静态方法+ (void)setAnimationsEnabled:(BOOL)enabled)来禁用动画。然而,这会在调用该方法后禁用所有视图的动画。你应该记得稍后启用动画。至于禁用特定层次结构的视图的动画,而不是其他的,则不可能。


-1
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
                 forKey:kCATransactionDisableActions];
layer.content = someImageRef;// set uiview property that you dont want it animate
[CATransaction commit];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接