iOS- 利用UIImageView自己整了个不会说话的汤姆猫
2024-08-25 15:27:06
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/
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。
最新文章
- 原创:CSS3技术-雪碧图自适应缩放与精灵动画方案
- linux shell执行中需要交互输入回车,Yes/NO Y/N
- CSS3_概述、发展史、模块介绍、与浏览器之间的关系
- IntelliJ IDEA优化总结
- 因为改 UOM conversion 导致库存数量和財务上的数据错误
- Jacoco远程统计代码覆盖率
- Speech Patterns (string)
- [Javascript] Introduce to Webpack
- poj 3792 Area of Polycubes
- MVC5 Entity Framework学习之Entity Framework高级功能
- MacOSX高分屏图片打包工具tiffutil的简单使用
- 微软 深度学习 cntk ,我目前见过 安装方式最简单的一个框架,2.0之后开始支持C# 咯
- Python中的列表生成器,迭代器的理解
- 【原创】java NIO FileChannel 学习笔记 FileChannel 简介
- 一个极为简单的方法实现本地(离线)yum安装rpm包
- uva11183 最小树形图模板题
- SpringBoot使用LomBok
- centos7下没有iptables
- 基于html5顶部导航3D翻转展开特效
- 在wepy里面使用redux