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

时间:2011-12-04 00:15:15

标签: iphone ios ipad core-animation

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

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:9)

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

+ (void)setAnimationsEnabled:(BOOL)enabled

有关详细信息,请参阅reference

答案 1 :(得分:6)

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

答案 2 :(得分:0)

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