0

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

4

2 回答 2

0

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

[UIView animateWithDuration:someVariable animations:^{

// Animation

}
completion:^ (BOOL finished) 
{
    if (finished) {
        // Increment your someVariable here 
        // Then just call this holding method again
    }
}];
于 2013-05-21T12:43:28.433 回答
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];
于 2013-05-21T13:34:02.427 回答