【发布时间】:2014-08-15 21:58:20
【问题描述】:
我正在尝试使用 CATransaction 为 CALayer 的不透明度变化设置动画,但它不起作用:
[CATransaction begin];
[CATransaction setAnimationDuration:3];
[CATransaction setCompletionBlock:^{
NSLog(@"ENTERING COMPLETION BLOCK");
}];
NSLog(@"BEGINNING TRANSACTION");
self.opacity = 1;
[CATransaction commit];
进入此代码的不透明度为 0,没有动画。它会立即更改,尽管在完成块显示消息“正在输入完成块”之前事务确实需要 3 秒,正如预期的那样。我知道这种类型的动画不适用于视图的主层,但这里不是这样。
如果您想知道,我使用的是 CATransaction 而不是 CABasicAnimation,因为 (1) 我发现代码更易于阅读(和编写),以及 (2) 它使用完成块使链接更容易做到(虽然我在这里不这样做)。
是否有一些我不知道的原因使CATransaction 不适合这种类型的动画?
【问题讨论】:
标签: animation core-animation calayer catransaction