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 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;
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.添加按钮
// 5.监听按钮点击
[button addTarget:self action:@selector(moveImage:) forControlEvents:UIControlEventTouchUpInside];
// 6.添加按钮
[self.view addSubview:button];