关键帧动画动画设为keyframe.repeatCount = CGFLOAT_MAX;后,每次结束之后都有短暂停顿,怎么解决?
其实很简单,设一个属性即可:
// 计算模式 -> 强制运动,匀速进行,不管路径有多远!否则一次动画结束会有短暂停顿
keyframe.calculationMode = kCAAnimationPaced;
示例代码:
1 CAKeyframeAnimation *keyframe = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 2 3 keyframe.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 100, 200, 200)].CGPath; 4 keyframe.duration = 2; 5 keyframe.repeatCount = CGFLOAT_MAX; 6 7 // 计算模式 -> 强制运动,匀速进行,不管路径有多远!否则一次动画结束会有短暂停顿 8 keyframe.calculationMode = kCAAnimationPaced; 9 10 // 旋转模式 -> 沿着路径,自行旋转 转的时候需要沿着路径的切线!进行转动! 11 keyframe.rotationMode = kCAAnimationRotateAuto; 12 [_smallView.layer addAnimation:keyframe forKey:nil];