作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 transitionFromView
和 UIViewAnimationOptionTransitionFlipFromLeft
。现在我需要以这种方式组合此类转换的数量,以便我知道整个转换的完成情况。
最好的方法是什么?我可以使用类似 animateWithDuration
的东西,然后将多个 transitionFromView
放在动画 block 中吗?如果是,那么两条消息的持续时间参数是否会相互干扰?在那种情况下,每个持续时间参数意味着什么?
有没有更好的方法来为所有的完成 block 翻转多个 View ?
最佳答案
您可以使用 CATransaction
轻松做到这一点。
首先,如果您还没有将 QuartzCore 框架添加到您的目标中。
接下来,添加 #import <QuartzCore/QuartzCore.h>
到你的 .m
的顶部文件,如果您还没有的话。
执行[CATransaction begin]
在创建转换的语句之前。然后为新交易设置完成区 block 。接下来,创建动画。最后,提交事务。这是一个例子:
- (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];
}
请注意,您必须在创建任何动画之前设置完成 block 。完成 block 仅等待在设置后添加的动画。
另请注意 CATransaction
的所有方法是类消息。您没有获得代表交易的对象。
关于ios - 如何一次翻转多个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15345183/
我是一名优秀的程序员,十分优秀!