一. 继承关系:
UIButton --> UIControl --> UIView
二. 什么是按钮
UIButton既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置
三. UIButton的状态
- UIControlStateNormal : 默认状况
- UIControlStateHighlighted : 高亮状态(按钮被按下去的时候,既为手指还未松开)
- UIControlStateDisabled : 失效状态,不可用状态
如果enable = NO,处于disable状态,代表按钮不可以被点击
四. 按钮的样式
Ø UIButtonTypeCustom:无类型,按钮的内容需要自定义
Ø UIButtonTypeSystem:
Ø UIButtonTypeDetailDisclosure:
Ø UIButtonTypeInfoLight:
Ø UIButtonTypeInfoDark:详情按钮
我
1.1. 创建按钮
UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeCustom];
2. 设置按钮上的图片(按钮上的图片分状态,设置图片时必须告诉系统文字在按钮的什么状态下显示)
// 设置默认状态下的图片
[addBtn setImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal];
// 设置高亮状态下的图片
[addBtn setImage:[UIImage imageNamed:@"add_highlighted"] forState:UIControlStateHighlighted];
// 设置不可点击时的图片
[addBtn setImage:[UIImage imageNamed:@"add_disabled"] forState:UIControlStateDisabled];
3. 设置图片对齐方式
btn.imageView.contentMode = UIViewContentModeScaleAspectFit;
4. 设置背景色
btn.backgroundColor = [UIColor purpleColor];
5. 设置按钮的背景图片
[btn setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted];
6. 设置文字(按钮上的文字分状态,设置文字时必须告诉系统文字在按钮的什么状态下显示)
[btn setTitle:@"普通按钮" forState:UIControlStateNormal];
[btn setTitle:@"高亮按钮" forState:UIControlStateHighlighted];
7. 设置文字颜色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];
8. 设置文字大小
btn.titleLabel.font = [UIFont systemFontOfSize:20];
9. 设置文字的颜色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];
10. 设置文字的大小
btn.titleLabel.font = [UIFont systemFontOfSize:20];
11. 监听按钮
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchDown];
12. 将按钮添加到View上
[self.view addSubview:btn];
13. 获取按钮上的文字
[self.addBtn titleForState:UIControlStateNormal];
14. 获得按钮的文字颜色
[self.addBtn titleColorForState:UIControlStateNormal];
15. 获得按钮内部的小图片
[self.addBtn imageForState:UIControlStateNormal];
16.获得按钮的背景图片
[self.addBtn backgroundImageForState:UIControlStateNormal];
17.内边距设置
// 设置按钮内边距
self.btn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 10);
self.btn.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
五. UIButton/UIImageView/UILabel的选择
uUIButton
u特点
-既能显示文字,又能显示图片(能显示2张图片,背景图片、内容图片)
-长按高亮的时候可以切换图片\文字
-直接通过addTarget...方法监听点击
uUIImageView
-能显示图片,不能直接通过addTarget...方法监听点击
uUILabel
-能显示文字,不能直接通过addTarget...方法监听点击
u选择
u仅仅是显示数据,不需要点击
-建议选择UIImageView、UILabel
u不仅显示数据,还需要监听点击
-建议选择UIButton
-其实UIImageView、UILabel也可以通过手势识别器来监听(后面课程会学)
u长按控件后,会改变显示的内容
-不用考虑了,选择UIButton(因为UIButton有highlighted这种状态)
u同时显示2张图片:背景图片、内容图片
-不用考虑了,选择UIButton