animatewithduration指数增长更快

时间:2013-05-21 12:36:05

标签: ios uiview core-animation uiviewanimation

我目前正在开发iOS应用。在应用程序中,我使用uiview animatewithduration从屏幕顶部掉落(UIView's)。我希望它们随着它们的下降而指数地变得更快。有没有办法使用animatewithduration来做到这一点,还是有另一种方法可以尝试达到相同的效果?

2 个答案:

答案 0 :(得分:0)

您可以使用完成块中的变量增加持续时间并调用动画。这将是一个简单但有效的方式来做你要求的。

[UIView animateWithDuration:someVariable animations:^{

// Animation

}
completion:^ (BOOL finished) 
{
    if (finished) {
        // Increment your someVariable here 
        // Then just call this holding method again
    }
}];

答案 1 :(得分:0)

您可以将CAAnimations与自定义计时功能配合使用来执行此操作。一个小例子:

CAMediaTimingFunction *timing = [[CAMediaTimingFunction alloc] initWithControlPoints:1 :0.1 :1 :0.9];
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
anim.timingFunction = timing;
anim.duration = 0.4;
anim.toValue = [NSNumber numberWithFloat:480];
[view.layer addAnimation:anim forKey:nil];