gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:44 26 4
gpt4 key购买 nike

我正在尝试将一些使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com