UIButton
A.素材准备
1.图片素材放置到Images.xcassets中
B.按钮状态
1.normal:默认状态 Default
对应的枚举常量:UIControlStateNormal
2.highlighted(高亮状态)
按钮被按下去的时候(未松开)
对应的枚举常量:UIControlStateHighlighted
3.disabled(失效状态,不可用状态)
如果enable属性为NO,就是处于disabled状态,代表按钮不可被点击
对应的枚举常量:UIControlStateDisabled
C.按钮属性
Type:更改为Custom,消除按下按钮时背景的透明效果
State Config:选择按钮状态,进而设置不同状态下按钮的其他属性
D.autolayout 自动布局
autolayout会干扰手动布局编码的运行
E.使用tag标记组合多个按钮使用一个方法
1 - (IBAction)move:(UIButton *) sender {
2 CGRect tempFrame = self.head.frame;
3
4 CGFloat delta = 10;
5 switch (sender.tag) {
6 case 1:
7 {
8 tempFrame.origin.y -= delta;
9 break;
10 }
11 case 2:
12 {
13 tempFrame.origin.x += delta;
14 break;
15 }
16 case 3:
17 {
18 tempFrame.origin.y += delta;
19 break;
20 }
21 case 4:
22 {
23 tempFrame.origin.x -= delta;
24 break;
25 }
26 default:
27 break;
28 }
29
30 self.head.frame = tempFrame;
31 }
F.使用center和bounds修改位置、尺寸
使用center改变位置,效果和使用frame差不多
使用bounds改变尺寸,能以中心为基点改变尺寸
G.位置移动动画
// 开始动画
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
(位置改变代码)...
// 提交动画
[UIView commitAnimations];
H.手动编码创建按钮
// 1.创建一个自定义的按钮
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
// 2.添加图片
[button setImage:[UIImage imageNamed:imageName] forState:state];
// 3.设置尺寸、位置
button.frame = rect;
// 4.设置tag, tag最好不要用0,因为默认所有都是0,会出现混乱错误,使用viewWithTag:0得到的是当前控件,不是子控件
button.tag = [[buttonDic objectForKey:@"tag"] intValue];
// 5.监听按钮点击
[button addTarget:self action:@selector(moveImage:) forControlEvents:UIControlEventTouchUpInside];
// 6.添加按钮
[self.view addSubview:button];