码迷,mamicode.com
首页 > 其他好文 > 详细

简单汤姆猫代码实现

时间:2015-09-13 00:54:54      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

 1 //
 2 //  ViewController.m
 3 //  091215TomCat
 4 //
 5 //  Created by LongMa on 15/9/12.
 6 //  Copyright (c) 2015年 Dast. All rights reserved.
 7 //
 8 
 9 #import "ViewController.h"
10 
11 @interface ViewController ()
12 - (IBAction)knockDown;
13 @property (weak, nonatomic) IBOutlet UIImageView *imgView;
14 - (IBAction)drink;
15 /**
16  *  对不同时间重构后的响应代码
17  *
18  *  @param name 图片前面部分
19  *  @param len  可变数组长度:图片个数
20  */
21 - (void)catActionWithFrontName:(NSString*)name
22                   andlength:(int)len;
23 
24 @end
25 
26 @implementation ViewController
27 
28 - (void)viewDidLoad
29 {
30   [super viewDidLoad];
31 
32 }
33 - (IBAction)knockDown
34 {
35   [self catActionWithFrontName:@"knockout_" andlength:80];
36 }
37 
38 
39 - (IBAction)drink
40 {
41   [self catActionWithFrontName:@"drink_" andlength:80];
42 
43 }
44 
45 - (void)catActionWithFrontName:(NSString*)name
46                   andlength:(int)len
47 {
48 //二、  为了防止动画执行时被其他时间打断,添加
49   if (self.imgView.isAnimating)
50   {
51     return;//正在运行就不响应点击事件,直接跳出方法。
52   }
53   
54 //  一、实现动画(1.动画数组存的是图片对象 2.先设置播放次数和持续时间再开始动画)并提取重复代码
55   //1.准备UIImage对象数组
56   NSMutableArray *arr = [NSMutableArray array];
57   
58   for (int i = 0; i < len; i++)
59   {
60     //   拼接文件名
61     NSString *str = [NSString stringWithFormat:@"%@%02d.jpg", name, i ];
62     //    转为UIImage对象
63     
64 //    三、内存叠加问题:imageNamed方法会缓存图片,故改为从文件获得:
65 //    此时注意两点:1.非png格式要移到Supporting Files里(拖拽成棕色文件夹即成功)
66 //                2.代码里文件名要加上 类型后缀、
67     NSString *path = [[NSBundle mainBundle] pathForResource:str ofType:nil];//居然忘了
68     UIImage *img = [UIImage imageWithContentsOfFile:path];
69     
70 //    根据文件名查找图片并转化为图片对象
71 //    UIImage *img = [UIImage imageNamed:str];
72     //    对象加入临时的UIImage对象数组
73     [arr addObject:img];
74   }
75   //  把临时可变数组赋值给  用于动画的UIImage对象数组
76   //  上面的都是为这一步准备
77   self.imgView.animationImages = arr;
78   
79   //   设置并开始动画
80   [self.imgView setAnimationRepeatCount:1];
81   [self.imgView setAnimationDuration:arr.count * 0.08];
82   [self.imgView startAnimating];
83 //  四、动画结束时释放内存
84 //  self.imgView.animationImages = nil;//错误!程序环机制,需要设置时间延迟后再执行:
85   
86   //注意:1.perform 2.@selector 3.set+数组名+冒号
87   [self.imgView performSelector:@selector(setAnimationImages:) withObject:nil
88                      afterDelay:arr.count * 0.08 + 1];
89 }
90 @end

技术分享技术分享

简单汤姆猫代码实现

标签:

原文地址:http://www.cnblogs.com/Dast1/p/4803878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!