天天看点

OC中如何创建帧动画

目录

配置过程:

一.创建可变数组,用于存放帧动画的每一张图片

二.使用for循环加载每一张存在在文件中的图片

三.设置动画播放的图片 (放入数组)  把存放了图片对象的数组赋值给imageview的animationImages属性

四.设置动画播放的次数

五.设置动画执行的时间

六.开启动画

七.代码

配置过程:

在实现帧动画的过程中,我们需要图片源,并且为了方便实现,我们将图片的名称统一前缀命名,图片数量为30张,并且需要注意的是,所有存放的帧动画图片大小需一致,这样在播放的过程中能正常的实现图片放映.

img_1-img_30为此示例的30张图片名称.

一.创建可变数组,用于存放帧动画的每一张图片

NSMutableArray *imgArr = [NSMutableArray  array];

二.使用for循环加载每一张存在在文件中的图片

    for (int i = 0; i < 30; i++) {

        // 1.1.获取图片的名称

        NSString *imageName = [NSString stringWithFormat:@"%d", i + 1];

        // 1.2.加载图片  会自动根据文件名在文件里找,返回图片对象

        UIImage *image = [UIImage imageNamed:imageName];//imageName文件名 

        // 1.3.将image对象放入数组中  把一个个图片对象放到可变数组里面去

        [imgArr addObject:image];

    }

三.设置动画播放的图片 (放入数组)  把存放了图片对象的数组赋值给imageview的animationImages属性

    self.imageView.animationImages = images; //animationImages是NSArray类型

四.设置动画播放的次数

    self.imageView.animationRepeatCount = 0;   

五.设置动画执行的时间

    // 默认情况下:一秒钟30帧,一秒播放30张图片.一张图片的时间:1/30.0=0.033

    // 当设置成1.0,播放一轮图片所使用的时间. 1/20.0=0.05

    self.imageView.animationDuration = 0.5;

六.开启动画

   [self.imageView startAnimating]; //从列表的第一张图片开始播放图片动画

}

七.代码

//
//  ViewController.m
//  05-UIImageView的帧动画
//
//  Created by Robot_Cao on 18/07/20.
//  Copyright © 2018年 Robot_Cao. All rights reserved.
//
#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
   
    // 1.加载所以的图片
    NSMutableArray *images = [NSMutableArray array];
    for (int i = 0; i < 20; i++) {
        // 1.1.获取图片的名称
        NSString *imageName = [NSString stringWithFormat:@"%d", i + 1];
       
        // 1.2.加载图片  会自动根据文件名在文件里找,返回图片对象
        UIImage *image = [UIImage imageNamed:imageName];//imageName文件名  imageNamed:The image object for the specified file
       
        // 1.3.将image对象放入数组中  把一个个图片对象放到可变数组里面去
        [images addObject:image];
    }
   
    // 2.设置动画播放的图片 (放入数组)  把存放了图片对象的数组赋值给imageview的animationImages属性
    self.imageView.animationImages = images; //animationImages是NSArray类型
   
    // 3.设置动画播放的次数
    self.imageView.animationRepeatCount = 0;
   
    // 4.设置动画执行的时间
    // 默认情况下:一秒钟30帧,一秒播放30张图片.一张图片的时间:1/30.0=0.033
    // 当设置成1.0,播放一轮图片所使用的时间. 1/20.0=0.05
    self.imageView.animationDuration = 0.5;
   
    // 6.查看是否正在动画
    // self.imageView.isAnimating
}
/*
 对上面的总结
 首先创立一个可变数组来接收将来要接收的图片对象  NSMutableArray
 1.获取图片名称    NSString 来获取
 2.根据图片名称找到图片对象  UIImage
 3.把图片对象赋值给装图片的数组  数组名 addObject : 图片对象
 4.把数组赋值给imageview的animationImages属性    self.imageview.animationImages =
 5.给imageview的其他属性赋值
 */
#pragma mark - 对动画的操作
- (IBAction)startAnimating {
    [self.imageView startAnimating]; //从列表的第一张图片开始播放图片动画
}
- (IBAction)stopAnimating {
    [self.imageView stopAnimating];
}
@end