iOS -UI汤姆猫实现(UIImageView)自己写的汤姆猫,所学知识有限,代码还有待改进 ==

@interface ViewController ()

{

    UIImageView *tom;

    UIImageView *tommy;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    

    [self background];

    

    tommy = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

    

    [self.view addSubview:tommy];

    

    [self button];

}


/**

 *  背景图

 */

- (void)background

{

    tom =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetMaxX(self.view.frame), CGRectGetMaxY(self.view.frame))];

    NSLog(@"%f  %f",self.view.bounds.size.width,self.view.bounds.size.height);

    tom.image = [UIImage imageNamed:@"angry_00.jpg"];

    [self.view addSubview:tom];

}


/**

 *  一系列按钮

 */

- (void) button

{

    //    按钮

    NSArray *anniu = @[@"cymbal.png",@"fart.png",@"eat.png"];

    NSArray *rightAnniu = @[@"drink",@"scratch",@"pie"];

    

    for (int i = 0; i < 3; i ++) {

        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

        btn.frame = CGRectMake(2, 300+(60+10) * i, 60, 60);

        btn.tag = 200 + i;

        btn.backgroundColor = [UIColor clearColor];

        [btn setBackgroundImage:[UIImage imageNamed:anniu[i]] forState:UIControlStateNormal];

        [btn addTarget:self action:@selector(touchButton:) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:btn];

    }

    

    for (int i = 0; i < 3; i ++) {

        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

        btn.frame = CGRectMake(320-60-2, 300+(60+10) * i, 60, 60);

        btn.tag = 30 + i;

        [btn setBackgroundImage:[UIImage imageNamed:rightAnniu[i]]forState:UIControlStateNormal];

        [btn addTarget:self action:@selector(touchButton:) forControlEvents:UIControlEventTouchUpInside];


        [self.view addSubview:btn];

    }

    

    

    for (int i = 1; i <= 2; i ++) {

       UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

        button.frame = CGRectMake(45+(59+1)*i, 537-27,50, 35);


        button.tag = 100 + i;

        [button addTarget:self action:@selector(touchButton:) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:button];

    }

    //    尾巴

    UIButton *button3 = [UIButton buttonWithType:UIButtonTypeCustom];

    button3.frame = CGRectMake(215, 430, 40, 100);

    button3.tag = 20;

    [button3 addTarget:self action:@selector(touchButton:) forControlEvents:UIControlEventTouchUpInside];

//        button3.backgroundColor = [UIColor blackColor];

    [self.view addSubview:button3];

    //    腹部

    UIButton *button1 =[UIButton buttonWithType:UIButtonTypeCustom];

    button1.frame = CGRectMake(100, 300, 120, 200);

    button1.tag = 21;

    [button1 addTarget:self action:@selector(touchButton:) forControlEvents:UIControlEventTouchUpInside];

    

//            button1.backgroundColor = [UIColor blackColor];

    [self.view addSubview:button1];

    //    头部

    UIButton *button2 = [UIButton buttonWithType:UIButtonTypeCustom];

    button2.frame = CGRectMake(80, 90, 160, 180);

    button2.tag = 22;

    [button2 addTarget:self action:@selector(touchButton:) forControlEvents:UIControlEventTouchUpInside];

//        button2.backgroundColor = [UIColor blackColor];

    [self.view addSubview:button2];



    

}


/**

 *

 *

 *  @param count 图片的张数

 *  @param name  动作的名称

 */

- (void)animationWithCount:(int)count andname:(NSString *)name

{

    if (tommy.isAnimating ) {

        return;

    }

    NSMutableArray *images = [NSMutableArray array];

    for (int i = 0; i < count; i ++) {

        NSString *fileName = [NSString stringWithFormat:@"%@_%02d.jpg",name,i];

        NSBundle *myBoundle = [NSBundle mainBundle];

        NSString *path = [myBoundle pathForResource:fileName ofType:nil];


        NSString *path1 = [[NSBundle mainBundle] pathForResource:@"TomCat" ofType:@"plist"];

        NSArray *list = [NSArray arrayWithContentsOfFile:path1];

        NSLog(@"%@",list);

               

//        UIImage *image1 = [UIImage imageWithContentsOfFile:path1];

        

        

        

        

        

        

        UIImage *image = [[UIImage alloc]initWithContentsOfFile:path];

        

        [images addObject:image];

        

    }

    

     tommy.animationImages = images;

    

    tommy.animationRepeatCount = 1;

    

    tommy.animationDuration = images.count*0.1;

    

     [tommy startAnimating];

    

    CGFloat delay = tommy.animationDuration + 0.5;

    

    [tommy performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:delay];


    

}


/**

 *  点击的时候

 *

 *  @param button 告诉系统是哪一个按钮

 */

- (void) touchButton:(UIButton *)button

{

    switch (button.tag) {

        case 101:

           [self animationWithCount:29 andname:@"foot_right"];

            break;

        case 102:

           [self animationWithCount:29 andname:@"foot_left"];

            break;

        case 20:

          [self animationWithCount:25 andname:@"angry"];

            break;


        case 21:

           [self animationWithCount:33 andname:@"stomach"];

            break;


        case 22:

          [self animationWithCount:80 andname:@"knockout"];

            break;


        case 200:

            [self animationWithCount:12 andname:@"cymbal"];

            break;


        case 201:

            [self animationWithCount:27 andname:@"fart"];

            break;


        case 202:

            [self animationWithCount:39 andname:@"eat"];

            break;


        case 30:

            [self animationWithCount:80 andname:@"drink"];

            break;


        case 31:

            [self animationWithCount:55 andname:@"scratch"];

            break;


        case 32:

            [self animationWithCount:23 andname:@"pie"];

            break;

            


        default:

            break;

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值