纯代码:设置imageView帧动画
@interface ViewController ()
{
UIImageView *_imgView;
NSMutableArray<UIImage *> *_imageArr;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_imgView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 300, 300, 200)];
_imgView.image = [UIImage imageNamed:@"1.jpg"];
[self.view addSubview:_imgView];
// 1.1 实例化可变数组用来 加载所有的图片
_imageArr = [NSMutableArray array];
for (int i = 0; i<20; i++) {
// 获取图片的名称
NSString *imageName = [NSString stringWithFormat:@"%d", i+1];
// 创建UIImage对象
UIImage *image = [UIImage imageNamed:imageName];
// 加入数组
[_imageArr addObject:image];
}
// 开始按钮
UIButton *imgViewButtonStart = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[imgViewButtonStart setFrame:CGRectMake(20, 200, 200, 50)];
[imgViewButtonStart setTitle:@"开始动画" forState:UIControlStateNormal];
[imgViewButtonStart setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[imgViewButtonStart addTarget:self action:@selector(stratAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:imgViewButtonStart];
// 暂停按钮
UIButton *imgViewButtonStop = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[imgViewButtonStop setFrame:CGRectMake(200, 200, 200, 50)];
[imgViewButtonStop setTitle:@"停止动画" forState:UIControlStateNormal];
[imgViewButtonStop setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[imgViewButtonStop addTarget:self action:@selector(stopAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:imgViewButtonStop];
}
#pragma mark - 开始动画
- (void)stratAction {
// 设置动画图片
_imgView.animationImages = _imageArr;
// 设置动画的播放次数
_imgView.animationRepeatCount = 0;
// 设置播放时长
// 1秒30帧, 一张图片的时间 = 1/30 = 0.03333 20 * 0.0333
_imgView.animationDuration = 1.0;
// 开始动画
[_imgView startAnimating];
}
#pragma mark - 结束动画
- (void)stopAction {
[_imgView stopAnimating];
}
@end