让一个图片绕着一个点旋转有很多种方式 这里就说一个
使用CABasicAnimation的动画
CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
//结束值(和其对应的有一个fromValue 动画属性初始值)
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ];
rotationAnimation.duration = 3.0; //动画时间
rotationAnimation.cumulative = YES; // 指定累计
rotationAnimation.repeatCount = 3.0; //动画重复的次数
[_loadingView.layer addAnimation:rotationAnimation forKey:@"animation"];
那如何让暂停layer上面的动画暂停:
//获取动画执行的时间
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
//把动画的速度设置为0
layer.speed = 0.0;
//把动画执行的时间赋值给layer的时间偏移
layer.timeOffset = pausedTime;
让动画执行:
//继续layer上面的动画
CFTimeInterval pausedTime = [layer timeOffset];
layer.speed = 1.0;
layer.timeOffset = 0.0;
layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
layer.beginTime = timeSincePause;