// 1. 使用核心动画的方式进行旋转
// 1> 创建核心动画对象
CABasicAnimation *anim = [CABasicAnimationanimationWithKeyPath:@"transform.rotation.z"];
CGFloat angle = M_PI * 2 / 12 *(int)self.selectedButton.tag;
// 2> 设置动画属性值
anim.toValue = @(M_PI * 2 * 8 - angle);
anim.duration = 2.0;
// // 设置CALayer执行完毕动画后停留在动画结束的位置
// // (1)、告诉CALayer,动画执行完毕后不要移除核心动画对象
// anim.removedOnCompletion = NO;
// // (2)、告诉CALayer,动画执行完毕后请保持动画结束时的位置
// anim.fillMode = kCAFillModeForwards;
// 设置核心动画执行的速率
anim.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
// 为核心动画对象设置代理
// 实现代理两种方式:1>通过协议 2> 通过分类(当通过分类来实现代理的时候又叫做:【隐式代理】)
anim.delegate = self;
// 4> 将核心动画对象添加到对应的CALayer中
[self.imgViewRotate.layer addAnimation:animforKey:@"anim"];
++++++++++++++++++++++++++++++++++
// 核心动画开始执行时会调用的一个方法
- (void)animationDidStart:(CAAnimation*)anim {}
// 核心动画停止执行时会调用的一个方法
- (void)animationDidStop:(CAAnimation *)animfinished:(B