#pragma mark 动画转动
-(void)DHZD{
CABasicAnimation* rotateAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotateAnimation.fromValue = [NSNumber numberWithFloat:0.0];
// 旋转一周
rotateAnimation.toValue = [NSNumber numberWithFloat:M_PI * 2];
// 旋转时间20秒
rotateAnimation.duration = 20.0;
// 重复次数,这里用最大次数
rotateAnimation.repeatCount = MAXFLOAT;
[self.MainImg.layer addAnimation:rotateAnimation forKey:nil];
}
#pragma mark 停止转动
-(void)TZZD{
CFTimeInterval pausedTime = [_MainImg.layer convertTime:CACurrentMediaTime() fromLayer:nil];
_MainImg.layer.speed = 0.0; // 停止旋转
_MainImg.layer.timeOffset = pausedTime; // 保存时间,恢复旋转需要用到
}
#pragma mark 恢复转动
-(void)HFZD{
if (_MainImg.layer.timeOffset == 0) {
[self DHZD];
return;
}
CFTimeInterval pausedTime = _MainImg.layer.timeOffset;
_MainImg.layer.speed = 1.0; // 开始旋转
_MainImg.layer.timeOffset = 0.0;
_MainImg.layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [_MainImg.layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime; // 恢复时间
_MainImg.layer.beginTime = timeSincePause; // 从暂停的时间点开始旋转
}