A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

2黑马币
今天学到存代码搭建ui,然后一一共创建了5个按钮,其中想通过其中的4个按钮来控制第五个按钮的左右上下移动,请问怎么实现

3 个回复

倒序浏览
移动的过程其实是一个简单的动画效果,包括缩放,旋转都是,还是自己动手试试吧
回复 使用道具 举报
我自学了然后写了博客你参考一下:http://blog.csdn.net/ssirreplaceable/article/details/51405094
回复 使用道具 举报
废话不多说,直接上代码,Ipone 6S 4.7寸:
//
//  ViewController.m
//  FF-6-23-01
//
//  Created by ya on 16/6/23.
//  Copyright © 2016年 FF0002. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) UIButton *moveBtn;
@property (nonatomic, assign) CGPoint moveBtnCenter;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
   
    _moveBtn = [[UIButton alloc] initWithFrame:CGRectMake(122, 141, 131, 93)];
    [_moveBtn setBackgroundColor:[UIColor redColor]];
    [_moveBtn setTitle:@"移动我吧" forState:UIControlStateNormal];
    [self.view addSubview:_moveBtn];
    _moveBtnCenter = _moveBtn.center;
   
    NSArray *strArray = [[NSArray alloc] initWithObjects:@"上", @"下", @"左", @"右", nil];
   
    for (int i = 0; i < 4; i ++)
    {
        UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(i * (50 + 35) + 35, 412, 50, 30)];
        [btn setBackgroundColor:[UIColor greenColor]];
        [btn setTitle:[strArray objectAtIndex:i] forState:UIControlStateNormal];
        [btn setTag:i];
        [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:btn];
    }
   
    UIButton *resetBtn = [[UIButton alloc] initWithFrame:CGRectMake(146, 514, 83, 52)];
    [resetBtn setTitle:@"复位" forState:UIControlStateNormal];
    [resetBtn setBackgroundColor:[UIColor grayColor]];
    [resetBtn setTag:4];
    [resetBtn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:resetBtn];
   
   
   
}

#define Upward      0
#define Downward    1
#define Left        2
#define Right       3
#define Reset       4

- (void)btnClick:(UIButton *)btn
{
   
    switch (btn.tag) {
        case Upward:
        {
            [UIButton animateWithDuration:1 animations:^{
                _moveBtn.center = CGPointMake(_moveBtn.center.x, _moveBtn.center.y - 50);
            }];
        }
            break;
        case Downward:
        {
            [UIButton animateWithDuration:1 animations:^{
                _moveBtn.center = CGPointMake(_moveBtn.center.x, _moveBtn.center.y + 50);
            }];
        }
            break;
        case Left:
        {
            [UIButton animateWithDuration:1 animations:^{
                _moveBtn.center = CGPointMake(_moveBtn.center.x - 50, _moveBtn.center.y);
            }];
        }
            break;
        case Right:
        {
            [UIButton animateWithDuration:1 animations:^{
                _moveBtn.center = CGPointMake(_moveBtn.center.x + 50, _moveBtn.center.y);
            }];
        }
            break;
        case Reset:
        {
            [UIButton animateWithDuration:1 animations:^{
                _moveBtn.center = _moveBtnCenter;
            }];
        }
            break;
            
        default:
            break;
    }
   
}

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

@end
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马