标签:
代码下载地址:http://download.csdn.net/detail/ytuzhangziyao/8313977
1.第一种方法
/*
不会说话的汤姆猫
1.图片名放在button的title中,提取出来用sender.currentTitle
2.每个文件夹中的图片个数存在button的tag值中,提取出来用sender.tag
*/
- (IBAction)clickBtn:(UIButton *)sender {
NSMutableArray *ary = [NSMutableArrayarray];
if (![_tomisAnimating]) {
return;
}//判断上一动画是否在进行,不进行则执行
int num = sender.tag;
for (int i =0; i < num; i++) {
//%02表示占两位,左边空缺时自动补0
NSString *str = [NSStringstringWithFormat:@"%@_%02i.jpg",sender.currentTitle,i];
UIImage *image = [UIImageimageNamed:str];
[aryaddObject:image];
}
//序列帧动画
_tom.animationImages = ary;
_tom.animationDuration =0.1*num;
_tom.animationRepeatCount =1;
[_tomstartAnimating];
}
2.第二种方法
#pragma mark 播放动画
-(void)playAnimation:(NSString *)name :(int)count{
if ([_tomisAnimating]) {
return;
}//判断上一动画是否在进行
NSMutableArray *ary = [NSMutableArrayarray];
for (int i =0; i < count; i++) {
//%02表示占两位,左边空缺时自动补0
//获得图片方法<一>
// NSString *str = [NSString stringWithFormat:@"%@_%02i.jpg",name,i];
// UIImage *image = [UIImage imageNamed:str];
//获得图片方法<二> 需要用到某些照片再提取出来,不需要时释放掉,占用内存少
NSString *str = [NSStringstringWithFormat:@"%@_%02i",name,i];
NSBundle *bundle = [NSBundlemainBundle];
NSString *path = [bundlepathForResource:str ofType:@"jpg"];
UIImage *image = [UIImageimageWithContentsOfFile:path];
[aryaddObject:image];
}
//序列帧动画
_tom.animationImages = ary;
_tom.animationDuration =0.1*count;
_tom.animationRepeatCount =1;
[_tomstartAnimating];
}
/*笔记
<1>加载图片,放在缓存中(找图片,先从缓存找,如果没有,再从手机中找,加载之后永远不会自己释放)
//有缓存(无法释放,参数是文件名)经常用的,占用内存小得图片
UIImage *image = [UIImage imageNamed:str];
<2>无缓存,加载完会释放(推荐)(用完会被释放,参数传得的全是路径)占用内存大得,不经常用的
此方法适用于 工程中图片非常多,并且图片的像素很大的工程
使用该方法添加图片,不会占用活跃内存,每次调用图片的时候,都是去工程路径查找而不再保存在活跃内存中。
*/
代码下载地址:http://download.csdn.net/detail/ytuzhangziyao/8313977
标签:
原文地址:http://blog.csdn.net/ytuzhangziyao/article/details/42264927