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