#import "ViewController.h"
@interface ViewController ()
@property (weak,nonatomic) IBOutlet UIImageView *imageView;
- (IBAction)head;
@end
@implementation ViewController
- (IBAction)head {
// 图片张数, 图片名称
[self SetDataInfo:81 PicName:@"knockout"];
}
-(void) SetDataInfo:(int)count PicName:(NSString*)PicName{
//当imageView图片框正在执行动画,则return
if (self.imageView.isAnimating)
{
return;
}
//声明数组
NSMutableArray * arrayM = [NSMutableArray array];
//循环取得图片名称,并添加到数组中
for(int i = 0; i < count; i++)
{
//拼接图片名称
NSString *imgName =[NSString stringWithFormat:@"%@_%02d.jpg",PicName,i];
//获取图片完整路径,不使用缓存
//另一种方试调用imageNamed:这种方式是图片保存到内存当中,占用内存过大
NSString *path =[[NSBundle mainBundle] pathForResource:imgName ofType:nil];
//根据图片路径取到图片
UIImage* imgCat = [UIImage imageWithContentsOfFile:path];
//添加到数组
[arrayM addObject:imgCat];
}
//1.设置UIImageView (图片框) 的animationImages 属性,这个属性中包含所有要执行的动画图片
self.imageView.animationImages =arrayM;
//2.设置动画持续时间
self.imageView.animationDuration =self.imageView.animationImages.count * 0.1;
//3.设置动画是否重复播放
self.imageView.animationRepeatCount = 1;
//4.开启动画
[self.imageView startAnimating];
//设置图片框在调用setAnimationImages:nil 方法的时候延迟执行
[self.imageView performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.imageView.animationImages.count *0.1];