按钮操作Demo

//

//  ViewController.m

//  按钮操作

 

#import "ViewController.h"

 

/**

 使用git

 

 1.创建项目时,勾选Git

 2.开发告一段落,选择"source Control",并编写注释

 

 */

 

 

// 枚举类型实质上就是一个整数,作用就是用来代替魔法数字

// 枚举类型中,指定了第一个整数之后,后面的数字会递增

typedef enum

{

    kMovingDirTop = 10,

    kMovingDirBottom,

    kMovingDirLeft,

    kMovingDirRight

} kMovingDir;

 

#define kMovingDelta 60;

 

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIButton *headImageView;

@end

 

@implementation ViewController

 

// 在OC中绝大多数的控件的监听方法的第一个参数就是控件本身

//- (IBAction)left:(UIButton *)button {

//    NSLog(@"___");

//}

 

- (IBAction)move:(UIButton *)button {

    // 通过frame修改head位置

    

    // 在OC中不允许直接修改"对象"的结构体属性的"成员"

    // 允许修改对象的结构体属性

    

    // 1.取出结构体属性

    // CGRect rect = self.headImageView.frame;

    CGPoint p = self.headImageView.center;

    // magic number魔法数字,其他程序员看到代码的时候,不知道是什么意思

    switch (button.tag) {

        case kMovingDirTop:

            // 2.修改结构体成员

            // rect.origin.y -= kMovingDelta;

            p.y -= kMovingDelta;

            break;

        case kMovingDirBottom:

            // 2.修改结构体成员

            // rect.origin.y += kMovingDelta;

            p.y += kMovingDelta;

            break;

        case kMovingDirLeft:

            // 2.修改结构体成员

            // rect.origin.x -= kMovingDelta;

            p.x -= kMovingDelta;

            break;

        case kMovingDirRight:

            // 2.修改结构体成员

            // rect.origin.x += kMovingDelta;

            p.x += kMovingDelta;

            break;

    }

    // 设置对象的结构体属性

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:1.0];

    // self.headImageView.frame = rect;

    self.headImageView.center = p;

    [UIView commitAnimations];

//    self.headImageView.frame.origin.y = self.headImageView.frame.origin.y - 20;

}

 

- (IBAction)zoom:(UIButton *)button {

    CGRect rect = self.headImageView.bounds;

    

    // 在C语言中,关于BOOL的判断:非零即真

    if (button.tag) {

        rect.size.width += 50;

        rect.size.height += 50;

    } else {

        rect.size.width -= 50;

        rect.size.height -= 50;

    }

    // 首尾动画

    // beginAnimations表示此后的代码要参与到动画中

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:3.0];

    self.headImageView.bounds = rect;

    self.headImageView.alpha = 0;

    // commitAnimations将beginAnimations之后的所有动画提交并生成动画

    [UIView commitAnimations];

}

 

 

 

 

@end

 

 

 

 

下面是全代码实现

//  ViewController.m

//  按钮操作之全代码实现

 

 

#import "ViewController.h"

 

typedef enum

{

    kMovingDirTop = 10,

    kMovingDirBottom,

    kMovingDirLeft,

    kMovingDirRight

} kMovingDir;

 

@interface ViewController ()

@property (nonatomic,strong) UIButton *headImageView;

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    self.headImageView = [[UIButton alloc] init];

    self.headImageView.frame = CGRectMake(80, 80, 100, 100);

    

    [self.headImageView setTitle:@"gem" forState:UIControlStateNormal];

    [self.headImageView setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

    [self.headImageView setBackgroundImage:[UIImage imageNamed:@"邓紫棋2"] forState:UIControlStateNormal];

    [self.view addSubview:self.headImageView];

    

    [self.headImageView setTitle:@"邓紫棋" forState:UIControlStateHighlighted];

    [self.headImageView setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];

    [self.headImageView setBackgroundImage:[UIImage imageNamed:@"邓紫棋3"] forState:UIControlStateHighlighted];

    [self.view addSubview:self.headImageView];

    

    UIButton *up = [[UIButton alloc] init];

    up.frame = CGRectMake(57, 291, 40, 40);

    up.tag = 10;

    [up setBackgroundImage:[UIImage imageNamed:@"top_normal"] forState:UIControlStateNormal];

    [self.view addSubview:up];

    [up setBackgroundImage:[UIImage imageNamed:@"top_highlighted"] forState:UIControlStateHighlighted];

    [self.view addSubview:up];

    [up addTarget:self action:@selector(move:) forControlEvents:UIControlEventTouchUpInside];

    

    

    UIButton *down = [[UIButton alloc] init];

    down.frame = CGRectMake(57, 387, 40, 40);

    down.tag = 11;

    [down setBackgroundImage:[UIImage imageNamed:@"bottom_normal"] forState:UIControlStateNormal];

    [self.view addSubview:down];

    [down setBackgroundImage:[UIImage imageNamed:@"bottom_highlighted"] forState:UIControlStateHighlighted];

    [self.view addSubview:down];

    [down addTarget:self action:@selector(move:) forControlEvents:UIControlEventTouchUpInside];

    

    UIButton *left = [[UIButton alloc] init];

    left.frame = CGRectMake(16, 339, 40, 40);

    left.tag = 12;

    [left setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];

    [self.view addSubview:left];

    [left setBackgroundImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted];

    [self.view addSubview:left];

    [left addTarget:self action:@selector(move:) forControlEvents:UIControlEventTouchUpInside];

    

    UIButton *right = [[UIButton alloc] init];

    right.frame = CGRectMake(96, 339, 40, 40);

    right.tag = 13;

    [right setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];

    [self.view addSubview:right];

    [right setBackgroundImage:[UIImage imageNamed:@"right_highlighted"] forState:UIControlStateHighlighted];

    [self.view addSubview:right];

    [right addTarget:self action:@selector(move:) forControlEvents:UIControlEventTouchUpInside];

    

    UIButton *plus = [[UIButton alloc] init];

    plus.frame = CGRectMake(167, 339, 40, 40);

    plus.tag = 1;

    [plus setBackgroundImage:[UIImage imageNamed:@"plus_normal"] forState:UIControlStateNormal];

    [self.view addSubview:plus];

    [plus setBackgroundImage:[UIImage imageNamed:@"plus_highlighted"] forState:UIControlStateHighlighted];

    [self.view addSubview:plus];

    [plus addTarget:self action:@selector(zoom:) forControlEvents:UIControlEventTouchUpInside];

    

    UIButton *minus = [[UIButton alloc] init];

    minus.frame = CGRectMake(234, 339, 40, 40);

    [minus setBackgroundImage:[UIImage imageNamed:@"minus_normal"] forState:UIControlStateNormal];

    [self.view addSubview:minus];

    [minus setBackgroundImage:[UIImage imageNamed:@"minus_highlighted"] forState:UIControlStateHighlighted];

    [self.view addSubview:minus];

    [minus addTarget:self action:@selector(zoom:) forControlEvents:UIControlEventTouchUpInside];

    

    

}

 

- (void)move:(UIButton *)button

{

    CGPoint p = self.headImageView.center;

    switch (button.tag) {

        case kMovingDirTop:

            p.y -= 10;

            break;

        case kMovingDirBottom:

            p.y += 10;

            break;

        case kMovingDirLeft:

            p.x -= 10;

            break;

        case kMovingDirRight:

            p.x += 10;

            break;

 

    }

    self.headImageView.center = p;

}

 

- (void)zoom:(UIButton *)button

{

    CGRect rect =  self.headImageView.bounds;

    if (button.tag) {

        rect.size.height += 50;

        rect.size.width +=50;

    } else {

        rect.size.height -= 50;

        rect.size.width -= 50;

    }

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:3.0];

    self.headImageView.bounds = rect;

    self.headImageView.alpha = 0;

    [UIView commitAnimations];

}

 

@end

 

posted on 2015-02-06 17:55  Holy_Mac  阅读(272)  评论(0编辑  收藏  举报

导航