UI编程实现图片动画播放
首先要在工程中添加几张你想要显示出来的图片,之后就可以开始写代码实现动画播放了
#import "MangoView.h"
#define kWidth self.frame.size.width#define kHeight self.frame.size.height
@implementation MangoView
//重写init方法,因为本类初始化时,如果子类重写了初始化方法就会执行子类初始化方法
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {//自定义方法
[self loadingCustomView];
}
return self;
}
- (void)loadingCustomView{
// 创建一个UIImage对象(照片)
UIImage *image = [UIImage imageNamed:@"55.png"];
//[NSBundle mainBundle]当前应用程序的主路径
//pathForResource: ofType:在应用程序当前的主路径下边去寻找资源文件的名字的类型
NSString *path = [[NSBundle mainBundle] pathForResource:@"7" ofType:@".png"];
NSLog(@"path = %@",path);
UIImage *image1 = [[UIImage alloc]initWithContentsOfFile:path];
//创建一个UIImageView对象(相框)
UIImageView *imageView = [[UIImageView alloc]initWithImage:image1];
//设置imageView大小 image.size.width图片原来的宽 image.size.height图片原来的高
//设置图片之后,如果不做任何默认设置图片会缩放到跟imageViewframe一样大小
imageView.frame = CGRectMake(30, 30,image.size.width/2-180, image.size.height/2);
//imageView.frame = self.frame;
/*
UIViewContentModeScaleAspectFit按图片原来的比例压缩
UIViewContentModeScaleToFil压缩图片,是图片充满imageView,图片会变形按原来的比例在填充整个imageView,可能有些部分显示不出来
UIViewContentModeTop 让图片从顶部开始显示
UIViewContentModeBottom 让图片从底部开始显示
UIViewContentModeTopLeft 让图片从顶部和左边开始显示
*/
imageView.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:imageView];
[imageView release];
//图片的用户交互默认是关闭状态,如果想让imageView以及上边的子视图响应用户交互,需要把imageView的userInteractionEnabled属性设置为YES
NSLog(@"%d",imageView.userInteractionEnabled);
//使用imageView播放一组图片的动画
NSMutableArray *imageArray = [NSMutableArray array];
for (int i = 1; i < 6; i++) {
//%04d、%0xd 输出x位,如果不足x位的用0来补全
// 通过for循环创建图片的名字
NSString *imageString = [NSString stringWithFormat:@"%d.png",i];
//通过图片名字创建UIImage对象
UIImage *image = [UIImage imageNamed:imageString];
//把图片对象添加到数组中
[imageArray addObject:image];
}
//设置将要播放动画的图片数组
imageView.animationImages = imageArray;
//设置动画播放时间
imageView.animationDuration = 2.0;
//设置动画重复次数
imageView.animationRepeatCount = 3;
//播放
[imageView startAnimating];
}
@end
#import "MangoViewController.h"
#import "MangoView.h"
@interface MangoViewController ()
@end
@implementation MangoViewController
- (void)loadView{
[super loadView];
// 用自己创建的视图替换掉
self.view = [[MangoView alloc]initWithFrame:self.view.frame];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end