基本控件之UIButton

1.基本使用

1. 创建显示按钮

1.1 创建按钮

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];


创建按钮,一般需要指定按钮的风格

(1)系统样式的按钮:  UIButtonTypeSystem

(2)如果创建带图片的:一般选用UIButtonTypeCustom

(3)圆角矩形: ios7不再使用 UIButtonTypeRoundedRect

(4)UIButtonTypeInfoDark     多显示一个圆圈和i

(5)UIButtonTypeContactAdd   多显示一个圆圈和+


1.2 设置按钮属性

    //设置按钮位置和大小
    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.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);


(2) 设置图片的内边距

表示图片离按钮四个边的距离,四个参数分别是(上,左,下,右)。利用该属性可以制作相框效果


[btn setImageEdgeInsets:UIEdgeInsetsMake(20, 20, 20, 20)];


6.UIButton常见属性和方法

UIButton有很多种状态,它提供了一些便捷属性,可以直接获取当前状态下的文字、文字颜色、图片等
@property(nonatomic,readonly,retain)NSString *currentTitle;
@property(nonatomic,readonly,retain)UIColor  *currentTitleColor;       
@property(nonatomic,readonly,retain)UIImage  *currentImage;            
@property(nonatomic,readonly,retain)UIImage  *currentBackgroundImage;

- ( NSString*)titleForState:( UIControlState)state;
获得按钮的文字

- ( UIColor*)titleColorForState:( UIControlState)state;
获得按钮的文字颜色

- ( UIImage*)imageForState:( UIControlState)state;
获得按钮内部的小图片

- ( UIImage*)backgroundImageForState:( UIControlState)state;
获得按钮的背景图片

7. 按钮使用需要注意的问题

1.一点击崩溃了

如果按钮事件处理方法有参数.写@selector不要忘了冒号

方法名没有写正确, 可能大小写错误了

2.点击了之后没反应

事件类型写错了

没有执行addTarget这个方法

3.通过类方法创建的按钮是不需要释放的

一旦释放, 可能出现无法显示或无法点击的问题

4.UIButton设置图片之后,去掉HighlightedAdjusts Image 前面的钩,然后点击图片,图片就不再闪烁.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值