先说说我实现它的主要思路,很简单,主要利用UIImageView连续动画播放,和按钮的点击事件,就可以完成了这么一个简单的不会说话的汤姆猫。
@PRoperty (weak, nonatomic) IBOutletUIImageView *tom;
NSDictionary *_dict; // 保存所有图片的个数
1 // 1.获得tom.plist的全路径2 NSBundle *bundle = [NSBundle mainBundle];3 NSString *path = [bundle pathForResource:@"tom" ofType:@"plist"];4 5 // 2.根据文件路径加载字典6 _dict = [NSDictionary dictionaryWithContentsOfFile:path];
1.有缓存(无法释放,参数传的是文件名)
[UIImage imageNamed:@""];
2.无缓存(用完就会释放,参数传的是全路径)
[[UIImage alloc] initWithContentsOfFile:];
// 1.创建可变数组 NSMutableArray *images = [NSMutableArray array]; // 2.添加图片 for (int i = 0; i<count; i++) { // 图片名 NSString *name = [NSString stringWithFormat:@"%@_%02d.jpg", filename, i]; // 全路径 NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:nil]; // 加载图片(缓存)// UIImage *img = [UIImage imageNamed:name]; // 没有缓存 UIImage *img = [[UIImage alloc] initWithContentsOfFile:path]; [images addObject:img]; } // 3.设置动画图片(有顺序) _tom.animationImages = images;// 序列帧动画 // 4.只播放一次 _tom.animationRepeatCount = 1; // 5.设置动画的持续时间 _tom.animationDuration = 0.1 * count; // 5.开始动画 [_tom startAnimating];
1 #pragma mark 监听所有的按钮点击 2 - (IBAction)btnClick:(UIButton *)sender { 3 // 1.如果tom正在播放动画,直接返回 4 if (_tom.isAnimating) return; 5 6 // 2.取出按钮文字 7 NSString *title = [sender titleForState:UIControlStateNormal]; 8 9 // 3.获得图片数量10 int count = [_dict[title] intValue];11 12 // 4.播放动画13 [self playAnim:count filename:title];14 }
作者: 清澈Saup
出处: http://www.VEVb.com/qingche/
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。
新闻热点
疑难解答