1.基本使用
1. 创建显示按钮
1.1 创建按钮
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
创建按钮,一般需要指定按钮的风格
(1)系统样式的按钮: UIButtonTypeSystem
(2)如果创建带图片的:一般选用UIButtonTypeCustom
(3)圆角矩形: ios7不再使用 UIButtonTypeRoundedRect
(4)UIButtonTypeInfoDark 多显示一个圆圈和i
(5)UIButtonTypeContactAdd 多显示一个圆圈和+号
//设置按钮位置和大小
button.frame = CGRectMake(100, 100, 100, 30);
//设置按钮显示的文本
//按钮随着点击有各种不同的状态
//设置显示的文本时候设置不同状态下的文本
//按钮常用状态有 正常, 高亮, 禁止
[button setTitle:@"点我啊" forState:UIControlStateNormal];
[button setTitle:@"被点了" forState:UIControlStateHighlighted];
//设置按钮上的字体大小
button.titleLabel.font = [UIFontsystemFontOfSize:24];
//设置按钮文本的颜色
[button setTitleColor:[UIColoryellowColor]forState:UIControlStateNormal];
//设置按钮背景颜色 button.backgroundColor = [UIColor whiteColor];
按钮的状态:
UIControlStateNormal 普通状态
UIControlStateHighlighted 高亮状态
UIControlStateDisabled 不可用状态
UIControlStateSelected 选中状态
2. 添加点击事件的处理方法
//添加一个处理按钮点击事件的方法//参数是事件的来源, 点击了按钮之后触发的
-(void)buttonClick:(UIButton *)button
{
NSLog(@"buttonClick");
}
//目的: 按钮点击了之后要执行buttonClick:
//干的事情: 告诉按钮点击了之后执行buttonClick:
//经常要处理的一个事件就是 点击后弹起(UIControlEventTouchUpInside)
//Event: forControlEvents指定需要处理的事件的类型
//Target: 指定哪个对象的哪个方法去处理点击的事件
//Action: 处理按钮的点击事件
//简单来说: 一旦button按钮被点击了,self中buttonClick:就会被执行,如果不加:代表无参。
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
按钮的常用点击事件:UIControlEventTouchUpInside:触摸结束时
UIControlEventTouchUpOutside:(在视野范围外)触摸结束时
UIControlEventTouchDown:触摸开始时
UIControlEventTouchCancel:来电话/短信;关机/锁屏;因触摸点过多而取消
3.启用或禁用按钮
<span style="color:#006600;">//设置按钮是否可用(是否能够被点击)</span>
<span style="font-weight: normal;">button.enabled = NO;</span>
4. 点击时高亮效果
<span style="color:#006600;">//设置按钮是否可用(是否能够被点击)</span>
<span style="font-weight: normal;">button.enabled = NO;</span>
<span style="color:#006600;">//设置按钮点击之后发光效果</span>
<span style="font-weight: normal;">button.showsTouchWhenHighlighted = YES;</span>
<span style="color:#006600;">//设置按钮点击之后发光效果</span>
<span style="font-weight: normal;">button.showsTouchWhenHighlighted = YES;</span>
5.图片按钮
注意: 类型要选择UIButtonTypeCustom
细节: UIButtonTypeSystem按钮的默认颜色是蓝色
UIButtonTypeCustom按钮的默认颜色是白色
5.1 设置按钮的图片
//设置按钮的图片(不是背景图, 显示在文本左边的图片),如果按钮的图片是png格式,后缀可以不写,如果同时设置文字和图片,图片会在左边(UIImageView),文字在右边(UILabel)。
[button setImage:[UIImage imageNamed:@"logo.png"] forState:UIControlStateNormal];
5.2 设置按钮的背景图片
背景图片的宽高与按钮的宽高一致
//如果想要给按钮添加背景图
//图片资源要添加到工程中
//从back.png生成了UIImage对象
UIImage *image = [UIImage imageNamed:@"back.png"];
[button setBackgroundImage:image forState:UIControlStateNormal];
小技巧:如果显示小图片最好用image,大图片最好用backgroundImage
5.3 调整文本和图片的位置EdgeInsets
(1)文字偏移
//{top, left, bottom, right}
button.titleEdgeInsets = UIEdgeInsetsMake(30, 0, 0, 0);
表示图片离按钮四个边的距离,四个参数分别是(上,左,下,右)。利用该属性可以制作相框效果
[btn setImageEdgeInsets:UIEdgeInsetsMake(20, 20, 20, 20)];
6.UIButton常见属性和方法
7. 按钮使用需要注意的问题
1.一点击崩溃了
如果按钮事件处理方法有参数.写@selector不要忘了冒号
方法名没有写正确, 可能大小写错误了
2.点击了之后没反应
事件类型写错了
没有执行addTarget这个方法
3.通过类方法创建的按钮是不需要释放的
一旦释放, 可能出现无法显示或无法点击的问题
4.UIButton设置图片之后,去掉HighlightedAdjusts Image 前面的钩,然后点击图片,图片就不再闪烁.