1. 创建按钮
#pragma mark 创建橙色按钮
- (void) createOrangeBtn
{
// 创建按钮
//[[UIButton alloc] initWithFrame:<#(CGRect)#>];
UIButton *btn = [[UIButton alloc] init];
// 绑定一个tag
btn.tag = kOrangeTag;
// 设置按钮的frame(位置和尺寸)
btn.frame = CGRectMake(100, 100, 100, 100);
// 设置背景颜色(橙色)
btn.backgroundColor = [UIColor orangeColor];
// 设置按钮文字(普通状态)
[btn setTitle:@"我是按钮" forState:UIControlStateNormal];
// (高亮状态:用户的手指按下去了)
[btn setTitle:@"被人摸了" forState:UIControlStateHighlighted];
// 设置按钮文字颜色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
[self.view addSubview:btn];
}
2. 按钮设置图片
// 设置按钮的普通背景图片
// 根据图片名称去项目文件系统中加载图片对象
UIImage *normalImage = [UIImage imageNamed:normal];
[btn setBackgroundImage:normalImage forState:UIControlStateNormal];
// 设置按钮的高亮图片
UIImage *highImage = [UIImage imageNamed:highlighted];
[btn setBackgroundImage:highImage forState:UIControlStateHighlighted];
3. 按钮动画
// 取出橙色按钮
UIView *orangeBtn = [self.view viewWithTag:kOrangeTag];
// 获得按钮的中点
CGPoint center = orangeBtn.center;
// 每次移动的距离
static CGFloat delta = 50;
// 根据按钮的类型来修改中点的值
switch (btn.tag) {
case kUp: // 上
center.y -= delta;
break;
case kDown: // 下
center.y += delta;
break;
case kLeftTag: // 左
center.x -= delta;
break;
case kRightTag: // 右
center.x += delta;
break;
}
// 即将开始一个动画
[UIView beginAnimations:nil context:nil];
// 设置动画持续时间
[UIView setAnimationDuration:.3];
// 重新赋值按钮的中点
orangeBtn.center = center;
// 提交动画(正式开始执行动画)
[UIView commitAnimations];