#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]; }
// 设置按钮的普通背景图片 // 根据图片名称去项目文件系统中加载图片对象 UIImage *normalImage = [UIImage imageNamed:normal]; [btn setBackgroundImage:normalImage forState:UIControlStateNormal]; // 设置按钮的高亮图片 UIImage *highImage = [UIImage imageNamed:highlighted]; [btn setBackgroundImage:highImage forState:UIControlStateHighlighted];
// 取出橙色按钮 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];
原文地址:http://www.cnblogs.com/sosomaxba/p/3848970.html