会说话的tom猫

这是一个很好玩的软件 看起来实现比较复杂 

但事实上,这个软件并不是那么复杂,代码量很少,但是思想很重要

一款软件存活关键在与他所体现的价值,和它的创新性

用到的技术很简单 就是图片播放加上动画效果,这里注释了的代码是封装之后的代码

#import "ViewController.h"

@interface ViewController ()
- (IBAction)knock;
- (IBAction)drink;
- (IBAction)rightFoot;
@property (weak, nonatomic) IBOutlet UIImageView *tom;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(void)runAnimationWithCount:(int)count andFileName:(NSString *)name
{
    if (self.tom.isAnimating)
        return;
    NSMutableArray *imageArray = [[NSMutableArray alloc]init];
    for (int i = 0; i <= count; i++) {
        //imageName 有缓存(传入文件名)
        NSString *fileName = [NSString stringWithFormat:@"%@_%02d.jpg",name,i];
        //UIImage *image = [UIImage imageNamed:fileName];
        NSBundle *bundle = [NSBundle mainBundle];
        NSString *path = [bundle pathForResource:fileName ofType:nil];
        UIImage *image = [UIImage imageWithContentsOfFile:path];
        
        [imageArray addObject:image];
    }
    self.tom.animationImages = imageArray;
    self.tom.animationRepeatCount = 1;
    self.tom.animationDuration = imageArray.count*0.1;
    [self.tom startAnimating];
    //动画放完1秒后清空内存
    CGFloat delay = self.tom.animationDuration +1.0;
    //[self performSelector:@selector(clearCache) withObject:nil afterDelay:delay];
    [self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:delay];
    
}
//-(void)clearCache
//{
//    NSLog(@"++++++clearCache");
//    self.tom.animationImages = nil;
//    [self.tom setAnimationImages:nil];
//}
- (IBAction)knock {
    [self runAnimationWithCount:80 andFileName:@"knockout"];
    /*
    if (self.tom.isAnimating)
        return;
    
    
    NSMutableArray *imageArray = [[NSMutableArray alloc]init];
    for (int i = 0; i <= 80; i++) {
        NSString *fileName = [NSString stringWithFormat:@"knockout_%02d.jpg",i];
        UIImage *image = [UIImage imageNamed:fileName];
        [imageArray addObject:image];
    }
    self.tom.animationImages = imageArray;
    self.tom.animationRepeatCount = 1;
    self.tom.animationDuration = imageArray.count*0.1;
    [self.tom startAnimating];
     */
}

- (IBAction)drink {
    [self runAnimationWithCount:80 andFileName:@"drink"];
//    if (self.tom.isAnimating)
//        return;
//    NSMutableArray *imageArray = [[NSMutableArray alloc]init];;
//    for (int i = 0; i<=80; i++) {
// 
//        //计算文件名
//        NSString *fileName = [NSString stringWithFormat:@"drink_%02d.jpg",i];
//        //加载图片
//        UIImage *image = [UIImage imageNamed:fileName];
//        //添加图片到数组
//        [imageArray addObject:image];
//    }
//    
//    self.tom.animationImages = imageArray;
//    //设置播放次数
//    self.tom.animationRepeatCount = 1;
//    //设置时间
//    self.tom.animationDuration = imageArray.count*0.1;
//    [self.tom startAnimating];
    
}

- (IBAction)rightFoot {
    [self runAnimationWithCount:29 andFileName:@"footRight"];
//    
//    if (self.tom.isAnimating)
//        return;
//    NSMutableArray *imageArray = [[NSMutableArray alloc]init];;
//    for (int i = 0; i<=29; i++) {
//        
//        //计算文件名
//        NSString *fileName = [NSString stringWithFormat:@"footRight_%02d.jpg",i];
//        //加载图片
//        UIImage *image = [UIImage imageNamed:fileName];
//        //添加图片到数组
//        [imageArray addObject:image];
//    }
//    
//    self.tom.animationImages = imageArray;
//    //设置播放次数
//    self.tom.animationRepeatCount = 1;
//    //设置时间
//    self.tom.animationDuration = imageArray.count*0.1;
//    [self.tom startAnimating];
}
@end


你可能感兴趣的:(函数,图片,软件,ios开发,TOM猫)