首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在iPhone OS 4.0中,基于块的动画方法是什么?

在iPhone OS 4.0中,基于块的动画方法是什么?
EN

Stack Overflow用户
提问于 2010-06-27 16:32:48
回答 3查看 45.8K关注 0票数 55

我正在尝试使用iPhone OS 4.0 (iOS4?)实现一个游戏。SDK。在以前版本的软件开发工具包中,我一直使用UIView : beginAnimations:context:和UIView commitAnimations来创建一些动画。但是,当我查看4.0中函数的文档时,我看到了这样的注释。

在iPhone OS 4.0及更高版本中,不鼓励

使用此方法。您应该改用基于块的动画方法。

你可以在这里找到它:http://developer.apple.com/iphone/library/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/clm/UIView/commitAnimations

我的问题是,在iPhone OS 4.0中,什么是基于块的动画?我认为beginAnimations:context:和commitAnimations函数是用来创建动画块的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-27 16:51:10

如果您沿着该链接向上滚动一点,您将看到ios4中新的动画方法。

代码语言:javascript
复制
animateWithDuration:animations:
animateWithDuration:animations:completion:
animateWithDuration:delay:options:animations:completion:

还有一些相关的过渡方法。对于每一个,动画参数都是一个block object

动画

包含要提交到视图的更改的块对象。在这里,您可以通过编程方式更改视图层次结构中视图的任何可设置动画的属性。此块不带参数,也没有返回值。此参数不能为空。

Block objectsConcurrent Programming的一部分

票数 42
EN

Stack Overflow用户

发布于 2010-07-23 15:08:28

我已经在我的blog中发布了一个示例

代码语言:javascript
复制
    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* (图标)。一旦完成,另一个动画将把图标移回它的原始位置。

票数 117
EN

Stack Overflow用户

发布于 2011-11-15 19:05:27

这里有一个非常简单的例子。代码只是淡出一个UIView,并在动画完成后将其隐藏:

代码语言:javascript
复制
[UIView animateWithDuration:1.0 
                      delay:0.0 
                    options:UIViewAnimationOptionCurveEaseInOut 
                 animations:^ {
                     bgDisplay.alpha = 0.0;
                 } 
                 completion:^(BOOL finished) {
                     bgDisplay.hidden = YES;
                 }];

或者使用不同的格式:

代码语言:javascript
复制
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^ {
    bgDisplay.alpha = 0.0;
} completion:^(BOOL finished) {
    bgDisplay.hidden = YES;
}];
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3126833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档