我使用了以下代码来旋转26段的轮子。问题是它没有显示easeIn和easy out的效果。
- (void) spinWithOptions: (UIViewAnimationOptions) options {
// this spin completes 360 degrees every 2 seconds
[UIView animateWithDuration: 0.5f
delay: 0.0f
options: options
animations: ^{
self.imageToMove.transform = CGAffineTransformRotate(imageToMove.transform, M_PI_2/6.49);
}
completion: ^(BOOL finished) {
if (finished) {
if (animating) {
// if flag still set, keep spinning with constant speed
[self spinWithOptions: UIViewAnimationOptionCurveLinear];
} else if (options != UIViewAnimationOptionCurveEaseOut) {
// one last spin, with deceleration
[self spinWithOptions: UIViewAnimationOptionCurveEaseOut];
}
}
}];
}
- (void) startSpin {
if (!animating) {
animating = YES;
[self spinWithOptions: UIViewAnimationOptionCurveEaseIn];
}
}
- (void) stopSpin {
// set the flag to stop spinning after one last 90 degree increment
animating = NO;
}
答案 0 :(得分:0)
EaseIn
导致动画缓慢开始然后加速,这应该仅在第一个0.5秒的动画上发生,然后你使用UIViewAnimationOptionCurveLinear
并且仅用于你使用的最后一个动画{{1 }}
据我所知,代码看起来没问题,您确定可以在如此短的时间内看到EastOut
效果吗?尝试设置更长的持续时间,看看是否会发生效果。