实现UIView的无限旋转动画(非CALayer动画)
实现UIView的无限旋转动画(非CALayer动画)
效果:
素材:
源码:
// // ViewController.m // Animation // // Created by YouXianMing on 15/2/5. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (nonatomic, strong) UIImageView *circleView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor blackColor]; self.circleView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; self.circleView.image = [UIImage imageNamed:@"bg"]; self.circleView.center = self.view.center; [self.view addSubview:self.circleView]; [self rotateImageView]; } - (void)rotateImageView { // 一秒钟旋转几圈 CGFloat circleByOneSecond = 1.5f; // 执行动画 [UIView animateWithDuration:1.f / circleByOneSecond delay:0 options:UIViewAnimationOptionCurveLinear animations:^{ self.circleView.transform = CGAffineTransformRotate(self.circleView.transform, M_PI_2); } completion:^(BOOL finished){ [self rotateImageView]; }]; } @end
核心源码(递归调用):