纯代码Tom


  1 //
2 // LWTViewController.m
3 // 纯代码Tom
4 //
5 // Created by apple on 14-5-21.
6 // Copyright (c) 2014年 lwt. All rights reserved.
7 //
8
9 #import "LWTViewController.h"
10 #define KBtnSize 60
11
12 // 图标按钮的左右的排列
13 typedef enum {
14 KButtonThird = 1,
15 KButtonSecond,
16 KButtonFirst
17 }KButton;
18
19 @interface LWTViewController ()
20
21 // 保存plist数据
22 @property (nonatomic, strong) NSDictionary *dict;
23
24 // 全屏图片属性
25 @property (nonatomic, strong) UIImageView *tom;
26
27 @end
28
29 @implementation LWTViewController
30
31 // 懒加载plist文件
32 - (NSDictionary *)dict
33 {
34 if(!_dict)
35 {
36 NSBundle *bundle = [NSBundle mainBundle];
37 NSString *dictPath = [bundle pathForResource:@"Tom" ofType:@"plist"];
38 self.dict = [NSDictionary dictionaryWithContentsOfFile:dictPath];
39 }
40 return _dict;
41 }
42
43 - (void)viewDidLoad
44 {
45 [super viewDidLoad];
46 // Do any additional setup after loading the view, typically from a nib.
47
48 // 创建默认全屏图片View
49 UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
50
51 // 加载图片
52 NSBundle *bundle = [NSBundle mainBundle];
53 NSString *imgUrl = [bundle pathForResource:@"angry_00.jpg" ofType:nil];
54 UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgUrl];
55
56 // 将图片给View
57 imageView.image = img;
58 [self.view addSubview:imageView];
59 self.tom = imageView;
60
61 // 创建点击按钮
62 // 左侧按钮
63 // eat
64 [self createBtn:@"eat" andCGRect:CGRectMake(0, (self.view.bounds.size.height - KBtnSize * KButtonFirst), KBtnSize, KBtnSize)];
65 // cymbal
66 [self createBtn:@"cymbal" andCGRect:CGRectMake(0, (self.view.bounds.size.height - KBtnSize * KButtonSecond), KBtnSize, KBtnSize)];
67 // drink
68 [self createBtn:@"drink" andCGRect:CGRectMake(0, (self.view.bounds.size.height - KBtnSize * KButtonThird), KBtnSize, KBtnSize)];
69 // 右侧按钮
70 // fart
71 [self createBtn:@"fart" andCGRect:CGRectMake((self.view.bounds.size.width - KBtnSize), (self.view.bounds.size.height - KBtnSize * KButtonFirst), KBtnSize, KBtnSize)];
72 // pie
73 [self createBtn:@"pie" andCGRect:CGRectMake((self.view.bounds.size.width - KBtnSize), (self.view.bounds.size.height - KBtnSize * KButtonSecond), KBtnSize, KBtnSize)];
74 // scratch
75 [self createBtn:@"scratch" andCGRect:CGRectMake((self.view.bounds.size.width - KBtnSize), (self.view.bounds.size.height - KBtnSize * KButtonThird), KBtnSize, KBtnSize)];
76
77 // 猫身上的按钮
78 // 头
79 [self createBtn:@"knockout" andCGRect:CGRectMake(62, 80, 190, 162)];
80 // 尾巴
81 [self createBtn:@"angry" andCGRect:CGRectMake(212, 352, 35, 80)];
82 // 左脚
83 [self createBtn:@"footLeft" andCGRect:CGRectMake(158, 430, 45, 32)];
84 // 右脚
85 [self createBtn:@"footRight" andCGRect:CGRectMake(112, 430, 45, 32)];
86
87
88 }
89
90 /** 创建点击按钮 */
91 - (void) createBtn:(NSString *)btnTitle andCGRect:(CGRect)frame
92 {
93 UIButton *btn = [[UIButton alloc] initWithFrame:frame];
94 [btn setTitle:btnTitle forState:UIControlStateNormal];
95 [btn setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];
96
97 // 设置按钮背景图片
98 UIImage *imgs = [UIImage imageNamed:btnTitle];
99 if (imgs) {
100 [btn setBackgroundImage:imgs forState:UIControlStateNormal];
101 } else {
102 }
103
104
105 // 监听点击事件
106 [btn addTarget:self action:@selector(playAnimation:) forControlEvents:UIControlEventTouchUpInside];
107
108 [self.view addSubview:btn];
109 }
110
111 /** 点击事件 */
112 - (void)playAnimation : (UIButton *)button
113 {
114 if( self.tom.isAnimating) return;
115 // 获取点击按钮的名称
116 NSString *str = [button titleForState:UIControlStateNormal];
117
118 // 根据点击按钮的名称从plist文件中获取图片数量
119 int count = [self.dict[str] intValue];
120
121 // 创建图片数组
122 NSMutableArray *imageArray = [NSMutableArray array];
123
124 // 循环获取所以图片
125 for (int i = 0; i < count; i++) {
126 // 图片名称
127 NSString *filename = [NSString stringWithFormat:@"%@_%02d.jpg", str, i];
128 // 图片绝对路径
129 NSString *path = [[NSBundle mainBundle] pathForResource:filename ofType:nil];
130 // 获取图片
131 UIImage *img = [[UIImage alloc] initWithContentsOfFile:path];
132 // 将图片存入图片数组
133 [imageArray addObject:img];
134
135 }
136
137 // 创建图片动画
138 self.tom.animationImages = imageArray;
139 // 每0.075秒播一张图片
140 self.tom.animationDuration = count * 0.075;
141 // 只播一次
142 self.tom.animationRepeatCount = 1;
143 // 开始动画
144 [self.tom startAnimating];
145 // 动画结束后销毁图片数组
146 [self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.tom.animationDuration];
147 }
148
149
150 - (void)didReceiveMemoryWarning
151 {
152 [super didReceiveMemoryWarning];
153 // Dispose of any resources that can be recreated.
154 }
155
156 @end

纯代码Tom,布布扣,bubuko.com

时间: 2024-10-23 10:06:57

纯代码Tom的相关文章

纯代码 自动屏幕适配iPhone

代码判断,你也可以用xib自带的自动布局选项 我是用的纯代码写的 纯代码 自动屏幕适配iPhone,布布扣,bubuko.com

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局 一.实现效果 二.使用纯代码自定义一个tableview的步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中

Stroyboard(可视化界面)与纯代码

Stroyboard是苹果在 iOS 5 中引入的新技术,让纯代码变成了一个可视化的界面,让nib.xib有一种更加直观的展现,几十行甚至几百行的代码搞定的一个控件,现在只要动动手指就能完成一个控件了,初学者学到的绝大部分都是教你怎么使用StoryBoard的而不是怎么用纯代码,但是我自己更加喜欢纯代码,总觉得自己敲出来的代码更加能信任,修改起来也会更加简单. 一开始我以为纯代码跟可视化界面其实是一样的,看个人喜好选择用什么方法,后来查了资料发现,如果是一个大的项目,用可视化界面,那么团队就不能

纯代码实现布局,对话框

对话框自定义:相对布局的java代码实现创建AlertDiaglogWindow window = dlg.getWindow()创建布局,代码为相对布局载入布局,载入相关空间,设置相关控件的位置代码如下 int bgImageViewID = 10;  int iconImageViewID = 11;  int textViewID = 12;  int buttonOkID = 13;  int buttonCancelID = 14;  int srcImageViewId = 15; 

iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一)

iOS开发UI篇-以微博界面为例使用纯代码自定义cell程序编码全过程(一) 一.storyboard的处理 直接让控制器继承uitableview controller,然后在storyboard中把继承自uiviewcontroller的控制器干掉,重新拖一个tableview controller,和主控制器进行连线. 项目结构和plist文件 二.程序逻辑业务的处理 第一步,把配图和plist中拿到项目中,加载plist数据(非png的图片放到spooding files中) 第二步,字

搭建App主流框架_纯代码搭建(OC)

转载自:http://my.oschina.net/hejunbinlan/blog/529778?fromerr=EmSuX7PR 搭建主流框架界面 源码地址在文章末尾 达成效果 效果图 注:本文部分图标及效果图来自[IT江湖] https://github.com/itjhDev/itjh 导读 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条 我们本文主要是讨论主体框架的搭建,数据暂时没有添

swift UI专项训练41 用纯代码的方式实现stepper的值传递

之前讲过通过storyboard的方式捕获控件的值,现在我们来试试通过纯代码的方式来实现同样的功能.首先定义一个stepper和一个label,用label来显示stepper的当前值. self.priceStepper = UIStepper(frame: CGRectMake(150, 120, 100, 20)) self.priceStepper.minimumValue = 100//最小值 self.priceStepper.maximumValue = 2000//最大值 sel

ios 用纯代码写程序的时候,navigationController的导航栏的设置

我们都知道,如果用storyBoard设置导航栏很容易,点击左右item的时候,进入下一个界面,导航栏的颜色是跟上一层的是一样的,用纯代码写的时候,可以在当前控制器,和从当前控制器进入到下一个控制器都用代码实现对导航栏的控制,但是,每次都写代码设置,很麻烦,所以,可以这样: 创建一个MainTabBarController的类,在Appdelegate.m里面完成: - (BOOL)application:(UIApplication *)application didFinishLaunchi

纯代码实现CSS圆角

我这里说的是纯代码,是指的不使用图片实现圆角,图片实现圆角,这里就不说了. 纯代码实现圆角主要有3种方法: 第一种:CSS3圆角 #chaomao{     border-radius:2px 2px 2px 2px; } 上面代码的意思是左上.右上.右下.右下分别2px的圆角 当然也可以简写:border-radius:2px 方向是从左上到左下逆时针 也可以分别指定 #chaomao{     border-top-left-radius:4px 2px;     border-top-ri