定时器。动画。数组。字符串拼接。
定时器Gif
- (void)viewDidLoad {
[super viewDidLoad];
image=[[UIImageView alloc] initWithFrame:self.view.frame];
image.image= [UIImage imageNamed:@"1.png"];
[self.view addSubview:image];
[NSTimer scheduledTimerWithTimeInterval:1/18.0 target:self selector:@selector(changePicture) userInfo:nil repeats:YES];
}
- (void)changePicture {
static int a = 1;
a ++;
//a%44+1循环
image.image= [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",a%44+1]];
/*
if (a == 45) {
a = 1;
}
NSString *name = [NSString stringWithFormat:@"%d.png",a%44+1];
image.image = [UIImage imageNamed:name];
*/
}
动画Gif
- (void)viewDidLoad {
[super viewDidLoad];
//创建图片视图
_imageView=[[UIImageView alloc] initWithFrame:self.view.frame];
//静态图片:当动态图片停止时,会显示静态图片
//如果不设置静态图片,动态图片停止只会就是空白
_imageView.image= [UIImage imageNamed:@"1.png"];
[self.view addSubview:_imageView];
//创建几张图片
UIImage *image1 = [UIImage imageNamed:@"1.png"];
UIImage *image2 = [UIImage imageNamed:@"10.png"];
UIImage *image3 = [UIImage imageNamed:@"35.png"];
//_imageView有animationImages动态图片属性
// NSArray数组NS的类的显示都和界面没关系
//Objects元素
_imageView.animationImages= [[NSArray alloc] initWithObjects:image1,image2,image3,nil];
//animationDuration设置动态图片每循环切换一次的时间表示整个图片集切换一次的时间
_imageView.animationDuration= 1;
//animationRepeatCount重复次数默认次数是无限,可不设置;设置为0也是无限次数表示无限重复
_imageView.animationRepeatCount= 0;
//开始动画,(imageView帧动画,改变图片的内容) (UIView动画,改变大小和位置)
//[_imageView startAnimating];
//停止动画
//[_imageView stopAnimating];
}
//触摸方法
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
//开始动画
[_imageView startAnimating];
//停止帧动画
//停止回到静态属性图片(第一张);
//[_imageView stopAnimating];
}
数组实现帧动画
//改变图片的方法
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
//创建可变数组
NSMutableArray * _mutableArray = [NSMutableArray arrayWithCapacity:0];
//往数组中添加图片
for(inti = 1; i <= 44; i ++) {
//拼接图片名称
NSString *name = [NSStringstringWithFormat:@"%d.png",i];
//创建图片
UIImage *image = [UIImage imageNamed:name];
//把图片放到数组里
[_mutableArray addObject:image];
}
//输出数组,检验添加是否正确(图片名字是否正确,创建全局变量,创建数组)
NSLog(@"%@",_mutableArray);
//设置帧动画图片
_imageV.animationImages= _mutableArray;
_imageV.animationDuration= 44/18.0;
//每次点击按钮,都播放一次
_imageV.animationRepeatCount= 1;
//开始动画
[_imageV startAnimating];
}