首页 > 代码库 > 纯代码Tom
纯代码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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。