首先在UIImageView中添加一张图片进来,然后同样也是在ViewDidLoad函数中进行代码的添写。
UIImage中建议使用:png 和 jpg 格式的图片
【1】创建一个图片对象
NSString *path =[[NSBundle mainBundle]resourcePath]; //得到工程目录的路径
NSString *imagePath =[[NSString stringWithFormat:@"%@,/1.png",path]; //使用工程目录路径拼接,得到图片路径
UIImage *image = [[UIImage alloc]initWithContentsOfFile:imagePath]; //创建一个对象,将图片路径放置进去
或者:
UIImage *image = [UIImage imageNamed:@"1.jpg"]; //如果后缀为png,甚至可以把png去掉。这种方法效率高,但是会将图片存入到内存中,直至程序结束才会将其释放
【2】创建一个图片载体
UIImageView *imageView = [[UIImageView alloc]initWithImage:image]; //初始化的时候,可以直接将图片加载到imageView中,图片显示在屏幕上的大小是由载体来控制的
imageView.frame = CGRectMake(10,100,355,400); //如果写成(10,100,image.size.width,image.size.height)显示的就是image原图的大小了
imageView.backgroundColor = [UIColor yellowColor];
[self.view addSubview:imageView];
【3】设置一个内容模式
/*UIViewContentModeScaleToFill —— 拉伸充满整个载体,内容模式默认模式
UIViewContentModeScaleAspectFill —— 拉伸,但不改变图片比例,充满载体最大的边
UIViewContentModeScaleAspectFit —— 拉伸,但不改变图片比例,充满载体最小的边
*/
imageView.contentMode = UIViewContentModeCenter; //此时,图片居中了,并且不被拉伸,保持了原图的大小。
【4】UIIMageView动画 —— 播放序列图
假设导入一套序列图,命名格式为1.png~12.png。在这之前,我们还需要把前面的代码注释掉,这里采用添加代码“#if 0 需要注释的部分 #endif”的方式即可。
NSMutableArray *imageArray =[[NSMutableArray alloc]init];
/*NSArray是静态的数组,就是它所指向的内容是不可改变的,它指向一段内存区域,一旦初始化,不能通过它对该内存区域的数据进行修改操作,但是它可以读数据。
NSMutableArray是动态的是NSArray的子类,可以对所指向的内存区域内容进行更改,并可以增加数组内容
NSArray和NSmutableArray的第一个数据的下标为0。*/
for(int i=1; i< = 12,i++){
UIImage *image = [[UIImage imageNamed:[NSString stringWithFormat:@"
png%@.png",1]];
[imageArray addObject:image];
}
UIImageView *imageView = [[UIIMageView alloc]init]; //因为这里是一套序列图,不是单一图片,所以就不需要initWith了
imageView.frame = CGRectMake((375-407)/2,100,407,207);
imageView.backgroundColor = [UIColor ];
[self.view addSubview:imageView];
imageView.animationImages = imageArray; //设置动画数组
imageView.animationDuration = 2; //设置播放周期时间,这里以秒为单位
imageView.animationRepeatCount = 10; //设置执行的次数,若设为0,则不停止,直到执行[imageView stopAnimating];
[imageView startAnimating]; //开始播放动画