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