imageView 中的图片自动360度旋转
#import "ViewController.h"
@interface ViewController ()
@property(nonatomic,strong)UIButton *btn;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
UIButton* btn = [[UIButtonalloc]init];
btn.frame =CGRectMake(100,200, 100,40);
[self.viewaddSubview:btn];
btn.backgroundColor = [UIColorblackColor];
[btn setTitle:@"更新"forState:UIControlStateNormal];
[btn setImage:[UIImageimageNamed:@"更新"]forState:UIControlStateNormal];
[btn addTarget:selfaction:@selector(startAnimate)forControlEvents:UIControlEventTouchUpInside];
_btn = btn;
}
-(void)startAnimate
{
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform" ];
animation.fromValue = [NSValuevalueWithCATransform3D:CATransform3DIdentity];
//围绕Z轴旋转,垂直与屏幕
animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI/2,0.0, 0.0,1.0) ];
animation.duration =0.1;
//旋转效果累计,先转180度,接着再旋转180度,从而实现360旋转
animation.cumulative =YES;
animation.repeatCount =1000;
//在图片边缘添加一个像素的透明区域,去图片锯齿
CGRect imageRrect =CGRectMake(0,0,_btn.imageView.frame.size.width,_btn.imageView.frame.size.height);
UIGraphicsBeginImageContext(imageRrect.size);
[_btn.imageView.imagedrawInRect:CGRectMake(1,1,_btn.imageView.frame.size.width-2,_btn.imageView.frame.size.height-2)];
_btn.imageView.image =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[_btn.imageView.layeraddAnimation:animation forKey:nil];
}
-(void)stopAnimate
{
[_btn.imageView.layerremoveAllAnimations];
}