// // ViewController.m // TomCat // // Created by xin on 15-3-15. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *tom; @end @implementation ViewController //-(UIImageView *)tom{ // if (_tom==nil) { // [_tom setAnimationRepeatCount:1]; // [_tom setAnimationDuration:0.075]; // } // return _tom; //} -(void)tomAnimation:(NSString *)imagePrefix count:(int)count{ if ([self.tom isAnimating]) return; NSMutableArray *array = [NSMutableArray array]; for(int i=0;i<count;i++){ NSString *imageName = [NSString stringWithFormat:@"%@_%02d.jpg",imagePrefix,i]; //UIImage *image = [UIImage imageNamed:imageName]; //imageNamed 适用于小图片 这里的情况,需要使用大量的图片占用很多内存 NSString *path = [[NSBundle mainBundle] pathForResource:imageName ofType:nil]; UIImage *image = [UIImage imageWithContentsOfFile:path]; [array addObject:image]; } [self.tom setAnimationImages:array]; [self.tom setAnimationDuration:array.count*0.075]; [self.tom setAnimationRepeatCount:1]; [self.tom startAnimating]; //释放内存 //[self performSelector:@selector(clearTom) withObject:nil afterDelay:self.tom.animationDuration]; [self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.tom.animationDuration]; } //-(void)clearTom{ // self.tom.animationImages = nil; //} - (IBAction)headKnockOut { [self tomAnimation:@"knockout" count:81]; } - (IBAction)drink { [self tomAnimation:@"drink" count:81]; } @end
可以采取另外一种方式去拿到图片,但是图片拉进项目的时候应该选择reference的方式
//try the file way, but the images file should be referenced NSString *bundlePath = [[[NSBundle mainBundle]bundlePath]stringByAppendingPathComponent:@"Animations"]; NSString *animPath = [bundlePath stringByAppendingPathComponent:imagePrefix]; NSArray *files = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:animPath error:nil]; for(NSString *fileName in files){ NSString *filePath = [NSString stringWithFormat:@"%@/%@",animPath,fileName]; UIImage *image = [UIImage imageNamed:fileName]; [array addObject:image]; }