您可以使用 aCATransaction
轻松完成此操作。
首先,将 QuartzCore 框架添加到您的目标中(如果您还没有的话)。
接下来,添加#import <QuartzCore/QuartzCore.h>
到.m
文件顶部(如果尚未添加)。
[CATransaction begin]
在创建转换的语句之前执行。然后为新事务设置完成块。接下来,创建动画。最后,提交事务。这是一个例子:
- (IBAction)flipButtonWasTapped:(id)sender {
[CATransaction begin]; {
[CATransaction setCompletionBlock:^{
NSLog(@"all animations complete!");
}];
[UIView transitionFromView:self.topFrontLabel
toView:self.topBackLabel duration:1
options:UIViewAnimationOptionTransitionFlipFromRight
completion:nil];
[UIView transitionFromView:self.bottomFrontLabel
toView:self.bottomBackLabel duration:1.5
options:UIViewAnimationOptionTransitionFlipFromRight
completion:nil];
} [CATransaction commit];
}
请注意,您必须在创建任何动画之前设置完成块。完成块只等待设置后添加的动画。
另请注意,所有方法CATransaction
都是类消息。您没有得到代表交易的对象。