我正在尝试使用iPhone OS 4.0 (iOS4?)实现一个游戏。SDK。在以前版本的软件开发工具包中,我一直使用UIView : beginAnimations:context:和UIView commitAnimations来创建一些动画。但是,当我查看4.0中函数的文档时,我看到了这样的注释。
在iPhone OS 4.0及更高版本中,不鼓励
使用此方法。您应该改用基于块的动画方法。
我的问题是,在iPhone OS 4.0中,什么是基于块的动画?我认为beginAnimations:context:和commitAnimations函数是用来创建动画块的。
发布于 2010-06-27 16:51:10
如果您沿着该链接向上滚动一点,您将看到ios4中新的动画方法。
animateWithDuration:animations:
animateWithDuration:animations:completion:
animateWithDuration:delay:options:animations:completion:
还有一些相关的过渡方法。对于每一个,动画参数都是一个block object
动画
包含要提交到视图的更改的块对象。在这里,您可以通过编程方式更改视图层次结构中视图的任何可设置动画的属性。此块不带参数,也没有返回值。此参数不能为空。
发布于 2010-07-23 15:08:28
我已经在我的blog中发布了一个示例
CGPoint originalCenter = icon.center;
[UIView animateWithDuration:2.0
animations:^{
CGPoint center = icon.center;
center.y += 60;
icon.center = center;
}
completion:^(BOOL finished){
[UIView animateWithDuration:2.0
animations:^{
icon.center = originalCenter;
}
completion:^(BOOL finished){
;
}];
}];
上面的代码将在2秒的动画中显示一个UIImageView* (图标)。一旦完成,另一个动画将把图标移回它的原始位置。
发布于 2011-11-15 19:05:27
这里有一个非常简单的例子。代码只是淡出一个UIView,并在动画完成后将其隐藏:
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^ {
bgDisplay.alpha = 0.0;
}
completion:^(BOOL finished) {
bgDisplay.hidden = YES;
}];
或者使用不同的格式:
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^ {
bgDisplay.alpha = 0.0;
} completion:^(BOOL finished) {
bgDisplay.hidden = YES;
}];
https://stackoverflow.com/questions/3126833
复制相似问题