1、自旋转动画
- (void)showRotateAnimation:(NSImageView *)imageView {
CABasicAnimation *anim2 = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
anim2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
anim2.removedOnCompletion = YES;
anim2.fillMode = kCAFillModeForwards;
NSNumber* toValue = [NSNumber numberWithFloat:360 * (M_PI / 180.0f)];
NSNumber* fromValue = [NSNumber numberWithFloat:(0.0f) * (M_PI / 180.0f)];
anim2.fromValue = toValue;
anim2.toValue = fromValue;
anim2.repeatCount = HUGE_VALF;
anim2.duration = 1.0f;
/*
* 1、设置中心点,要不然默认绕左下角旋转了
* 2、提前存一下layer.frame,要不然设置中心点后,旋转会有偏移
*/
CGRect oldRect = imageView.layer.frame;
imageView.layer.anchorPoint = CGPointMake(0.5f, 0.5f);
imageView.layer.frame = oldRect;
[imageView.layer addAnimation:anim2 forKey:@"transform"];
}
//需要延时一下,要不然不执行动画
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self showRotateAnimation:self.rotateImageView];
});