xcode 汤姆猫纯代码实现

#import "ViewController.h"

@interface ViewController ()
@property(nonatomic,strong)UIImageView * tom;
@property(nonatomic,strong)UIButton * btnAngry;
@property(nonatomic,strong)UIButton * btnCymbal;
@property(nonatomic,strong)UIButton * btnDrink;
@property(nonatomic,strong)UIButton * btnEat;
@property(nonatomic,strong)UIButton * btnFart;
@property(nonatomic,strong)UIButton * btnFootRight;
@property(nonatomic,strong)UIButton * btnFootLeft;
@property(nonatomic,strong)UIButton * btnKnockout;
@property(nonatomic,strong)UIButton * btnPie;
@property(nonatomic,strong)UIButton * btnScratch;
@property(nonatomic,strong)UIButton * btnStomach;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    /**
     获取屏幕x,y,w,h的值,设置图片大小
     */
    CGFloat cgX=self.view.frame.origin.x;
    CGFloat cgY=self.view.frame.origin.y;
    CGFloat cgW=self.view.frame.size.width;
    CGFloat cgH=self.view.frame.size.height;
    CGFloat btnW=60;
    CGFloat btnH=60;
    NSLog(@"%@",self.view);
    //给图片容器初始化大小位置
    self.tom=[[UIImageView alloc]initWithFrame:CGRectMake(cgX, cgY, cgW, cgH)];
    //加载图片
    self.tom.image=[UIImage imageNamed:@"tom"];
    //添加的父容器中
    [self.view addSubview:self.tom];
    
    /**
     创建UIButton按钮
     */
    //创建button按钮并且初始化大小位置
    self.btnCymbal=[[UIButton alloc]initWithFrame:CGRectMake(0, cgH-btnH, btnW, btnH)];
    //给按钮设置图片
    [self.btnCymbal setImage:[UIImage imageNamed:@"cymbal"] forState:UIControlStateNormal];
    //添加到父容器中
    [self.view addSubview:self.btnCymbal];
//    NSLog(@"%@",self.btnCymbal); 为测试位置用的
    
    self.btnDrink=[[UIButton alloc]initWithFrame:CGRectMake(0, self.btnCymbal.frame.origin.y-btnH, btnW, btnH)];
    [self.btnDrink setImage:[UIImage imageNamed:@"drink"] forState:UIControlStateNormal];
    [self.view addSubview:self.btnDrink];
//    NSLog(@"%@",self.btnDrink);
    
    self.btnEat=[[UIButton alloc]initWithFrame:CGRectMake(0, self.btnDrink.frame.origin.y - btnH, btnW, btnH)];
    [self.btnEat setImage:[UIImage imageNamed:@"eat"] forState:UIControlStateNormal];
    [self.view  addSubview:self.btnEat];
    
    self.btnFart=[[UIButton alloc]initWithFrame:CGRectMake(cgW-btnH, cgH-btnH, btnW, btnH)];
    [self.btnFart setImage:[UIImage imageNamed:@"fart"] forState:UIControlStateNormal];
    [self.view addSubview:self.btnFart];
//    NSLog(@"%@",self.btnFart);
    
    self.btnPie=[[UIButton alloc]initWithFrame:CGRectMake(self.btnFart.frame.origin.x, self.btnFart.frame.origin.y-btnH, btnW , btnH)];
    [self.btnPie setImage:[UIImage imageNamed:@"pie"] forState:UIControlStateNormal];
    [self.view addSubview:self.btnPie];
//    NSLog(@"%@",self.btnPie);
    
    self.btnScratch=[[UIButton alloc]initWithFrame:CGRectMake(self.btnPie.frame.origin.x, self.btnPie.frame.origin.y-btnH, btnW, btnH)];
    [self.btnScratch setImage:[UIImage imageNamed:@"scratch"] forState:UIControlStateNormal];
    [self.view addSubview:self.btnScratch];
    //尾巴
    self.btnAngry=[[UIButton alloc]initWithFrame:CGRectMake(251, 485, 40, 123)];
    [self.view addSubview:self.btnAngry];
    //头部
    self.btnKnockout=[[UIButton alloc]initWithFrame:CGRectMake(43,109 , 295, 220)];
    [self.view addSubview:self.btnKnockout];
    //右脚
    self.btnFootRight=[[UIButton alloc]initWithFrame:CGRectMake(117, 605, 62, 42)];
    [self.view addSubview:self.btnFootRight];
    //左脚
    self.btnFootLeft=[[UIButton alloc]initWithFrame:CGRectMake(192, 605, 62, 42)];
    [self.view addSubview:self.btnFootLeft];
    //肚子
    self.btnStomach =[[UIButton alloc]initWithFrame:CGRectMake(123, 471, 128, 95)];
    [self.view addSubview:self.btnStomach];
    
    
    
    /**
     给按钮添加事件
     */
    [self.btnCymbal addTarget:self action:@selector(cymbal) forControlEvents:UIControlEventTouchUpInside];
    [self.btnDrink addTarget:self action:@selector(drink) forControlEvents:UIControlEventTouchUpInside];
    [self.btnEat addTarget:self action:@selector(eat) forControlEvents:UIControlEventTouchUpInside];
    [self.btnFart addTarget:self action:@selector(fart) forControlEvents:UIControlEventTouchUpInside];
    [self.btnPie addTarget:self action:@selector(pie) forControlEvents:UIControlEventTouchUpInside];
    [self.btnScratch addTarget:self action:@selector(scratch) forControlEvents:UIControlEventTouchUpInside];
    [self.btnAngry addTarget:self action:@selector(angry) forControlEvents:UIControlEventTouchUpInside];
    [self.btnKnockout addTarget:self action:@selector(knockout) forControlEvents:UIControlEventTouchUpInside];
    [self.btnFootRight addTarget:self action:@selector(footRight) forControlEvents:UIControlEventTouchUpInside];
    [self.btnFootLeft addTarget:self action:@selector(footLeft) forControlEvents:UIControlEventTouchUpInside];
    [self.btnStomach addTarget:self action:@selector(stomach) forControlEvents:UIControlEventTouchUpInside];
}
-(void)stomach{
    [self runPlayCount:33 toFileName:@"stomach"];
}
/**
 左脚
 */
-(void)footLeft{
    [self runPlayCount:29 toFileName:@"footLeft"];
}
/**
 右脚
 */
-(void)footRight{

    [self runPlayCount:29 toFileName:@"footRight"];
}
/**
 晕倒
 */
-(void)knockout{
    [self runPlayCount:80 toFileName:@"knockout"];
}
/**
 生气
 */
-(void)angry{
    [self runPlayCount:25 toFileName:@"angry"];
}
/**
 敲东西
 */
-(void)cymbal{
    [self runPlayCount:12 toFileName:@"cymbal"];
}
/**
 喝东西
 */
-(void)drink{
    [self runPlayCount:80 toFileName:@"drink"];
}
/**
 吃东西
 */
-(void)eat{
    [self runPlayCount:39 toFileName:@"eat"];
}
/**
 放屁
 */
-(void)fart{
    [self runPlayCount:27 toFileName:@"fart"];
}
/**
 砸东西
 */
-(void)pie{
    [self runPlayCount:23 toFileName:@"pie"];
}
/**
 猫爪
 */
-(void)scratch{
    [self runPlayCount:55 toFileName:@"scratch"];
}
/**
 定义播放动画传入图片个数和图片名称
 */
-(void)runPlayCount:(int)count toFileName:(NSString *)name{
    //定义一个可变数组装图片
    NSMutableArray * arrM=[NSMutableArray array];
    for (int i=0; i<=count; i++) {
        //根据图片名称获取图片绝对路径
        NSString * fileName=[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"%@_%02d",name,i] ofType:@"jpg"];
        //根据路径获取图片
        UIImage * image=[UIImage imageWithContentsOfFile:fileName];
        //将图片添加到数组中
        [arrM addObject:image];
    }
    //加载动画图片
    self.tom.animationImages=arrM;
    //设置播放次数
    self.tom.animationRepeatCount=1;
    //设置播放时间
    self.tom.animationDuration=arrM.count*0.05 ;
    //播放
    [self.tom startAnimating];
    //播放完后释放对象  就是将对象设置nil
    [self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.tom.animationDuration];
}
@end

 

posted @ 2016-06-02 16:43  与格律上  阅读(391)  评论(0)    收藏  举报