1.实现思路             

先说说我实现它的主要思路,很简单,主要利用UIImageView连续动画播放,和按钮的点击事件,就可以完成了这么一个简单的不会说话的汤姆猫。

2.实现细节             

2.1.加载本地字典里保存的本地图片名       

@property (weak, nonatomic) IBOutletUIImageView *tom;

NSDictionary *_dict; // 保存所有图片的个数

 // 1.获得tom.plist的全路径
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"tom" ofType:@"plist"]; // 2.根据文件路径加载字典
_dict = [NSDictionary dictionaryWithContentsOfFile:path];

2.2.抽取动画连续播放的方法出来         

1.有缓存(无法释放,参数传的是文件名)
[UIImage imageNamed:@""];

2.无缓存(用完就会释放,参数传的是全路径)
 [[UIImage alloc] initWithContentsOfFile:];

    // 1.创建可变数组
NSMutableArray *images = [NSMutableArray array]; // 2.添加图片
for (int i = ; 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 = ; // 5.设置动画的持续时间
_tom.animationDuration = 0.1 * count; // 5.开始动画
[_tom startAnimating];

2.3.监听按钮的点击,实现图片的连续播放形成动画

 #pragma mark 监听所有的按钮点击
- (IBAction)btnClick:(UIButton *)sender {
// 1.如果tom正在播放动画,直接返回
if (_tom.isAnimating) return; // 2.取出按钮文字
NSString *title = [sender titleForState:UIControlStateNormal]; // 3.获得图片数量
int count = [_dict[title] intValue]; // 4.播放动画
[self playAnim:count filename:title];
}

作者: 清澈Saup
 出处:http://www.cnblogs.com/qingche/
 本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。

最新文章

  1. 原创:CSS3技术-雪碧图自适应缩放与精灵动画方案
  2. linux shell执行中需要交互输入回车,Yes/NO Y/N
  3. CSS3_概述、发展史、模块介绍、与浏览器之间的关系
  4. IntelliJ IDEA优化总结
  5. 因为改 UOM conversion 导致库存数量和財务上的数据错误
  6. Jacoco远程统计代码覆盖率
  7. Speech Patterns (string)
  8. [Javascript] Introduce to Webpack
  9. poj 3792 Area of Polycubes
  10. MVC5 Entity Framework学习之Entity Framework高级功能
  11. MacOSX高分屏图片打包工具tiffutil的简单使用
  12. 微软 深度学习 cntk ,我目前见过 安装方式最简单的一个框架,2.0之后开始支持C# 咯
  13. Python中的列表生成器,迭代器的理解
  14. 【原创】java NIO FileChannel 学习笔记 FileChannel 简介
  15. 一个极为简单的方法实现本地(离线)yum安装rpm包
  16. uva11183 最小树形图模板题
  17. SpringBoot使用LomBok
  18. centos7下没有iptables
  19. 基于html5顶部导航3D翻转展开特效
  20. 在wepy里面使用redux

热门文章

  1. html5 video获取当前时间和视频总时间长度
  2. rem和em的用法
  3. PHP在foreach中对$value赋值
  4. 【laravel】passport的scope作用域
  5. Python学习 :json、pickle&amp;shelve 模块
  6. 18CCPC网赛A 贪心
  7. Java基础之this和super关键字用法
  8. VS2015编译MapWinGIS
  9. 北京Uber优步司机奖励政策(2月2日)
  10. underscore.js 分析 第二天