iOS_5_汤姆猫
终于效果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
BeyondViewController.h
//
// BeyondViewController.h
// 05_TomCat
//
// Created by beyond on 14-7-23.
// Copyright (c) 2014年 com.beyond. All rights reserved.
// #import <UIKit/UIKit.h> @interface BeyondViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIImageView *imgView_tom;
- (IBAction)btnClick:(UIButton *)sender; @end
BeyondViewController.m
//
// BeyondViewController.m
// 05_TomCat
//
// Created by beyond on 14-7-23.
// Copyright (c) 2014年 com.beyond. All rights reserved.
// #import "BeyondViewController.h" @interface BeyondViewController ()
{
NSDictionary *_dict;
} @end @implementation BeyondViewController - (void)viewDidLoad
{
[super viewDidLoad]; // sg_bundle模板代码,1,获得.app基本的包;2,返回基本的包中某个文件的fullPath全路径
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *fullPath = [mainBundle pathForResource:@"tom.plist" ofType:nil];
_dict = [NSDictionary dictionaryWithContentsOfFile:fullPath]; }
- (IBAction)btnClick:(UIButton *)sender {
// 假设正在动画,则直接返回
if ([_imgView_tom isAnimating]) {
return;
} // button上面的text就是字典的key,相应值-1是相应动画的图片张数
// NSString *text = sender.titleLabel.text;
NSString *text = [sender titleForState:UIControlStateNormal];
int *picNum = [_dict[text] intValue];
NSLog(@"%@----%d",text,picNum); // 调用自己定义方法 播放动画
[self playAnimatitonNamed:text picNumber:picNum]; }
-(void)playAnimatitonNamed:(NSString *)name picNumber:(int)picNum
{
// 实例化可变数组
NSMutableArray *array = [NSMutableArray array];
// 向可变数组加入UIImage
for (int i=0; i<picNum; i++) {
// 生成image方式1,驻留内存,压力过大,真机会崩掉
NSString *fullName = [NSString stringWithFormat:@"%@_%02d.jpg",name,i];
UIImage *img = [UIImage imageNamed:fullName];
// 生成image方式2,IO读取全路径,用完就释放,不驻留内存
//NSString *fullPath = [[NSBundle mainBundle] pathForResource:fullName ofType:nil];
//UIImage *img2 = [[UIImage alloc] initWithContentsOfFile:fullPath];
// 加入UIImage到数组
[array addObject:img];
}
// 设置UIImageView的动画參数,并提交动画
_imgView_tom.animationImages = array;
_imgView_tom.animationDuration = 0.1*picNum;
_imgView_tom.animationRepeatCount = 1;
[_imgView_tom startAnimating];
}
@end
iOS_5_汤姆猫的更多相关文章
- [iOS基础控件 - 3.4] 汤姆猫
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...
- 声音变调算法PitchShift(模拟汤姆猫) 附完整C++算法实现代码
上周看到一个变调算法,挺有意思的,原本计划尝试用来润色TTS合成效果的. 实测感觉还需要进一步改进,待有空再思考改进方案. 算法细节原文,移步链接: http://blogs.zynaptiq.com ...
- [UI基础][不会说话的汤姆猫]
会说话的汤姆猫这个APP层级风靡一时,其UI部分就是利用了序列动画的技术, 接下来 我们用汤姆猫来演示怎么制作序列动画. [要求]: 1.学会使用序列动画的方法 2.学会分析动画播放中内存占用高的问题 ...
- iOS- 利用UIImageView自己整了个不会说话的汤姆猫
1.实现思路 先说说我实现它的主要思路,很简单,主要利用UIImageView连续动画播放,和按钮的点击事件,就可以完成了这么一个简单的不会说话的汤姆猫. 2.实现细节 2.1.加载本地字典里保存的本 ...
- 使用UISegementControl实现简易汤姆猫程序
// // TomViewController.m #import "TomViewController.h" #import <AVFoundation/AVFoundat ...
- 156 UIImageView 和 CADisplayLink 实现 Tom 汤姆猫动画效果的区别(扩展知识:分组(黄色文件夹)和文件夹引用(蓝色文件夹)区别)
(1)UIImageView 的动画操作,来自定义循环播放动画(不建议使用,内存消耗大) (2)CADisplayLink 是一个计时器,但是同 NSTimer 不同的是,CADisplayLink ...
- IOS 汤姆猫核心代码
// // MJViewController.m // 03-Tom // // Created by apple on 13-11-24. // Copyright (c) 2013年 itcast ...
- 【Web网站服务器开发】apache和tomcat 阿帕奇和汤姆猫
经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总 ...
- Web核心之tomcat汤姆猫
web相关概念 1. 软件架构 1. C/S:客户端/服务器端 2. B/S:浏览器/服务器端 2. 资源分类 1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏 ...
随机推荐
- 《C++反汇编与逆向分析技术揭秘》之十——构造函数
对象生成时会自动调用构造函数.只要找到了定义对象的地方,就找到了构造函数调用的时机.不同作用域的对象的生命周期不同,如局部对象.全局对象.静态对象等的生命周期各不相同,只要知道了对象的生命周期,便可以 ...
- iOS: iOS各种设备信息获取
Author:si1ence Link:http://www.jianshu.com/p/b23016bb97af 为了统计用户信息.下发广告,服务器端往往需要手机用户设备及app的各种信息,下面讲述 ...
- 小议使用“完整”的CSS的缺点
1.浏览器支持的不一致性 浏览器的漏洞或缺乏支持的CSS功能,导致不同的浏览器显示出不同的CSS版面编排.例如在微软Internet Explorer6.0的旧版本 ,执行了许多自己的CSS2.0属性 ...
- Node.js:模块系统、函数
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node.js 文件就是一个模块, ...
- SpringSecurity实现后台管理员登录(二)
需求:login.ftl页面中登录成功后进入index.ftl页面中 一.pom.xml中添加json转换相关的包 <dependency> <groupId>com.fast ...
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(1)
原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定 ...
- double转成string时,不以科学计数法表示
用gson解析json串的时候,经常会自动把我想用string表示的内容转换成double,并且还是科学计数法,这一点也不科学,写个方法,格式化一下. public static String par ...
- 【Leet Code】Palindrome Number
Palindrome Number Total Accepted: 19369 Total Submissions: 66673My Submissions Determine whether an ...
- 转:【微信小程序】 微信小程序-拍照或选择图片并上传文件
调用拍照API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html?t=20161222#wxchooseimageobj ...
- centos6.5下使用yum完美搭建LNMP环境(php5.6,mysql5.5,nginx1.10)
准备工作 配置防火墙,开启80端口.3306端口 不用执行这句:rm -rf /etc/sysconfig/iptables 直接进入修改:vi /etc/sysconfig/iptables 添加8 ...