iphone - beginAnimations 和 using animations block 之间的动画速度不同

标签 iphone ipad animation ios core-animation

我正在尝试将一些使用 beginAnimations 的动画代码转换为使用动画 block 。我遇到的问题是,当我使用动画 block 时,动画运行得更快,而且我似乎无法通过更改持续时间值来调整速度

这是我最初的出发点:

birdFly.image = [UIImage imageNamed: @"bird1.png"];
[self.view addSubview:birdFly];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:20];
birdFly.frame = CGRectMake(-1116,27,111,48);
[UIView commitAnimations];
[birdFly release];

这是我首先尝试替换上面的内容。使用此代码动画比使用原始代码快得多。即使改变持续时间似乎也根本不会改变速度:

birdFly.image = [UIImage imageNamed: @"bird1.png"];
[self.view addSubview:birdFly];
[UIView animateWithDuration:20
    animations:^{
        birdFly.frame = CGRectMake(-1116,27,111,48);
    }];

我也试过这个,认为我需要一个完成 block ,但与我最初不使用 block 时的速度相比,速度仍然一样快。

birdFly.image = [UIImage imageNamed: @"bird1.png"];
[self.view addSubview:birdFly];     
UIViewAnimationOptions options = UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction;
        [UIView animateWithDuration:20 delay:0.0 options:options animations:^
        {
            birdFly.frame = CGRectMake(-1116,27,111,48);
        } completion:nil];

所有代码都在做同样的事情吗?我只是在这里遗漏了一些非常简单的东西吗?我认为增加持续时间会使鸟走得更慢,减少持续时间会使它走得更快,但是当使用 block 更改它时似乎没有任何影响。

如有任何指导,我们将不胜感激。

谢谢。

亚伦

最佳答案

如果您的动画 block 出现在另一个动画 block 中,-animateWithDuration:animations: 将继承外部 block 的持续时间。尝试将 UIViewAnimationOptionOverrideInheritedDuration 添加到选项列表(如果您也需要覆盖曲线,则可能添加 UIViewAnimationOptionOverrideInheritedCurve)。

关于iphone - beginAnimations 和 using animations block 之间的动画速度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4228042/

相关文章:

iphone - 我得到 : Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException' , 原因: 'Could not instantiate class named MKMapView'

ios - iPad 上的分割 View (Swift 3)

javascript - 用于代码编辑器动画的 Web 动画库

android - 开始逐帧动画

iphone - iOS 4.0 中的 SB 格式电话号码问题

iphone - Mapkit addAnnotation异常: unrecognized selector sent to instance

iphone - 如何将背景颜色设置为搜索栏的清晰颜色

objective-c - 无法从自定义类获取数据

iphone - 添加 subview 时,如果应用程序处于横向模式, View 不会调整大小

javascript - IOS 上的 CSS 转换事件极其缓慢