如何检测由CATransaction触发的animation的完成?
我有一个CALayer,我只是创build并添加到我的视图控制器的主视图在控制器的initWithNibName的子视图:然后,我执行以下animation:
[CATransaction begin]; [CATransaction setAnimationDuration:2]; [logoLayer setOpacity:0]; [CATransaction commit];
如何知道这个animation何时完成? performSelector:延迟2秒。 方法似乎并不是“正确的方式”去做。
根据文档 , [CATransaction setCompletionBlock:]
可以用于你想要的。
它说
完成块对象保证在该事务组随后添加的所有animation完成(或已经被删除)后立即被调用(在主线程上)。如果在当前事务组被提交之前未添加animation(或完成块被设置为一个不同的值),块将被立即调用。
尝试在begin
animation交易之前添加这样的内容。
[CATransaction setCompletionBlock:^{ // Action after the animation completion }];