实现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

核心源码(递归调用):

 

目录
相关文章
UIScrollView滑动选页
UIScrollView滑动选页
65 0
|
Android开发 内存技术
Android动画(帧动画、补间动画、属性动画)讲解
帧动画:是一种常见的动画形式(Frame By Frame),其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。 补间动画:指的是做FLASH动画时,在两个关键帧中间需要做“补间动画”,才能实现图画的运动; 属性动画:帧动画与补间动画实现了对View进行移动、缩放、旋转和淡入淡出的效果。但对于android开发师来说是不够的,同时移动、缩放、旋转和淡入淡出的效果也不再只是一种视觉上的动画效果了。所以从Android 3.0版本开始,系统给我们提供了一种全新的动画模式,属性动画(property animation)。
290 0
Android动画(帧动画、补间动画、属性动画)讲解
CABasicAnimation旋转动画
CABasicAnimation旋转动画
146 0
CABasicAnimation旋转动画
|
存储 图形学
动画系统中的基础动画
动画系统中的基础动画
141 0
动画系统中的基础动画
|
XML Android开发 数据格式
动画必须有(一): 属性动画浅谈
目录 前言 ObjectAnimator的初步使用 用AnimatorSet进行动画混合 将动画写在xml中 动画监听 ViewPropertyAnimator上手 最后 前言 官方文档传送门 属性动画是非常非常好用的, 谷歌自己都说这是一个强大的框架.
1199 0
|
XML Android开发 数据格式