AJ学IOS(04)UI之半小时搞定Tom猫
AJ分享 必须精品
效果图
曾经风靡一时的tom猫其实制作起来那是叫一个相当的easy啊
功能全部实现,(关键是素材,没有素材的可以加我微信)
新手也可以很快的完成tom这个很拉轰的ios应用哦
然后呢你需要准备这些素材。。。
拖拽控件吧,因为这一个项目用到的不是很多,用代码写太累了,得不偿失,大家有兴趣的可以自己谢谢纯代码做ui的练习哦不会的可以参考我的前面一篇
拖拽控件,那些东西呢 看图片吧
就是这些东西,那个名字的地方在代码中又妙用
另外UIButton的tag属性也被添加了奇妙的数字
下面上代码
代码
//调用button监听方法
-(IBAction)tomAction:(UIButton *)button{
[self tomAnimationWithName:button.currentTitle count:button.tag];
}
//让tom猫动起来,name是要执行动作的名字 count是图片的个数
-(void) tomAnimationWithName:(NSString *) name count:(NSInteger) count
{
//如果动画正在播放就返回不执行
if (self.tom.isAnimating) {
return;
}
//序列帧动画 播放一组图片
//指定动画图片的数组
NSMutableArray *arrayM = [NSMutableArray array];
//添加动画播放的素材
for (int i = 0; i<count; i++) {
NSString *imageName = [NSString stringWithFormat:@"%@_%02d.jpg",name,i];
// UIImage *image = [UIImage imageNamed:imageName];
// 得到全路径名字
NSString *path = [[NSBundle mainBundle] pathForResource:imageName ofType:nil];
UIImage *image = [UIImage imageWithContentsOfFile:path];
arrayM[i] = image;
};
//把操作好的UIImage图片放到UIImageView的animationImages当中 把图片数组放Tom控件中
self.tom.animationImages = arrayM;
//设置执行一次
[self.tom setAnimationRepeatCount:1];
//设置执行时间
self.tom.animationDuration = arrayM.count * 0.075;
//开始执行动画
[self.tom startAnimating];
//结束动画后,清理动画数组
[self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.tom.animationDuration];
}
这里就是我们要用到的代码了,记得要给弄好的代码前面的圈圈连到ui上面,否则点不点都没用的
你敢相信吗,tom猫就这么几行代码就完成了,不到一个屏幕,大多数还是注释。
说说应该注意的地方吧
这里面内存管理特别重要,我们并没有用ios建议 我们用的
[UIImage imageNamed:name];
而是用了:
[UIImage imageWithContentsOfFile:path];
因为这样我们可以更完美的释放内存
内存在ios中相当重要,客户体验一直是苹果提醒的(据说android5.0还是5.1又漏了。。。其实安卓真的不错,我没有黑android的意思哦,只是希望android能更加茁壮的成长,更加完善。)
重构_图像的实例化
重构–抽取代码
方法:
1> 将重复代码复制到新的方法中
2> 根据需要调整参数
关于图像的实例化
imageNamed:系统推荐使用的,但是图像实例化之后的释放由系统负责
如果要自己释放图片,不能使用imageNamed方法!
而需要使用imageWithContentsOfFile
提示:如果放在Images.xcassets中的图片,不能使用imageWithContentsOfFile
Images.xcassets中不要 存放大的,不常用的图片
AJ学IOS(04)UI之半小时搞定Tom猫的更多相关文章
- (素材源代码)猫猫学IOS(四)UI之半小时搞定Tom猫
下载地址:http://download.csdn.net/detail/u013357243/8514915 以下是执行图片展示 制作思路以及代码解析 猫猫学IOS(四)UI之半小时搞定Tom猫这里 ...
- [转] Java程序员学C#基本语法两个小时搞定(对比学习)
Java程序员学C#基本语法两个小时搞定(对比学习) 对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. ...
- 猫学习IOS(四)UI半小时就搞定Tom猫
阿土 首先对影响 下载项目的源材料: Tom猫游戏代码iOS 素材http://blog.csdn.net/u013357243/article/details/44457357 效果图 以前风靡一时 ...
- Java程序员学C#基本语法两个小时搞定(对比学习)
对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. 1.引包 using System;java用import ...
- BS开发平台,一小时搞定功能强大的统计分析页面
BS开发平台,一小时搞定功能强大的统计分析页面,拥有强大的功能和详细的权限控制. 1.组织数据,分析需求(实际耗时大约20分钟) 2.建立需要的业务数据表(大致10分钟)3. 运行代码工具,生产需要 ...
- shell脚本学习之6小时搞定(1)
shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...
- AJ学IOS(28)UI之Quartz2D简单介绍
AJ分享,必须精品 iOS开发UI篇—Quartz2D简单介绍 什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : ...
- AJ学IOS(13)UI之UITableView学习(下)汽车名牌带右侧索引
AJ分享,必须精品 先看效果图 代码 ViewController #import "NYViewController.h" #import "NYCarGroup.h& ...
- AJ学IOS(41)UI之核心动画 两行代码搞定3D转场
AJ分享,必须精品 效果: 代码: 其实代码很少,苹果都给封装好了 // 1.创建核心动画 CATransition *ca = [CATransition animation]; // 1.1动画过 ...
随机推荐
- Mol Cell Proteomics. | Elevated Hexokinase II Expression Confers Acquired Resistance to 4-Hydroxytamoxifen in Breast Cancer Cells(升高的己糖激酶II表达使得乳腺癌细胞获得对他莫昔芬的抗性)(解读人:黄旭蕾)
文献名:Elevated Hexokinase II Expression Confers Acquired Resistance to 4-Hydroxytamoxifen in Breast Ca ...
- POJ1523 Tarjan求割点以及删除割点之后强连通分量的数量
题目链接:http://poj.org/problem?id=1523 SPF:A Single Point of Failure也就是割点(一个点导致网络之间的不连通),由于给出的图是无向图,所以只 ...
- DOM中获取元素的节点兼容IE6-8封装,带jquery源码分析children
<ul id="box"> <li>第一个节点</li> <li>第二个节点</li> <li>第三个节点& ...
- [ICRA 2019]Multi-Task Template Matching for Object Detection, Segmentation and Pose Estimation Using Depth Images
简介 本文作者提出新的框架(MTTM),使用模板匹配来完成多个任务,从深度图的模板上找到目标物体,通过比较模板特征图与场景特征图来预测分割mask和模板与检测物体之间的位姿变换.作者提 ...
- Contest 158
2019-10-14 15:30:38 总体感受:这次依然很快搞定了前三题,最后一题乍看之下还是比较简单的,但是出奇多的corner case让我非常苦恼,这也让我意识到要想真正征服最后一题,还有一个 ...
- 微信内置浏览器的JsAPI(WeixinJSBridge续)进入全屏
微信内置浏览器的JsAPI(WeixinJSBridge续)进入全屏 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript API(Javascript Interface) ...
- 近期 github 机器学习热门项目top5
磐创智能-专注机器学习深度学习的教程网站 http://panchuang.net/ 磐创AI-智能客服,聊天机器人,推荐系统 http://panchuangai.com/ [导读]:Github是 ...
- ConcurrentHashMap(1.7版本和1.8版本)
为什么要使用ConcurrentHashMap? ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代hashMap和HashTable.因为在并发编程中使 ...
- spring boot 异步发送邮件
发送邮件由于是一个耗时的操作,有可能需要一个几十秒的操作,但是呢,接口 是一个瞬间完成的,为了不影响接口的性能,所以需要对发送邮件的操作进行异步操作,我们这里呢,首先我们要引入发送邮件的测试模块. & ...
- python CGI 编程实践
文章更新于:2020-03-05 注1:安装 python 参见: python 的安装使用和基本语法 注2:配置 web 环境参见: Windows&linux使用集成环境搭建 web 服务 ...