UIButton的基本属性和方法

本文详细介绍了UIButton的创建方法,包括initWithFrame和buttonWithType两种方式,并列举了UIButton的类型、状态及事件类型等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UIButton是继承UIControl的子类,而UIControl的又是从UIview中派生出来的.下面介绍UIButton的一些常用属性和方法:
1.UIButoon可使用initWithFrame,buttonWithType两张方法创建
1) initWithFrame方法:

UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(60, 60, 200, 60)];  
  btn.backgroundColor=[UIColor greenColor];  
  [btn setTitle:@"btn1" forState:UIControlStateNormal];  
  [self.view addSubview:btn]; 

2) buttonWithType方法:

//buttonWithType初始化按钮
UIButton *btn2=[UIButton buttonWithType:UIButtonTypeRoundedRect];  
    CGRect rect=CGRectMake(60, 160, 200, 60);  
    btn2.frame=rect;  //设置button的frame
    btn2.tag=1001;      //设置tag值
    btn2.backgroundColor=[UIColor colorWithRed:30/255.0 green:200/255.0 blue:125/255.0 alpha:1.0];      //使用rgb设置按钮的背景颜色
    [btn2 setTitle:@"btn2" forState:UIControlStateNormal];          //为按钮设置标题
    [btn2 addTarget:self action:@selector(btn2Pressed) forControlEvents:UIControlEventTouchDown];   //为按钮添加事件
    [self.view addSubview:btn2]; 

btn2的响应事件:

-(void)btn2Pressed{  

    NSLog(@"button pressed");  
}  
  1. UIButtonType:
typedef enum {  
    UIButtonTypeCustom = 0,           // no button type   自定义,无风格  
    UIButtonTypeRoundedRect,          // rounded rect, flat white button, like in address card 白色圆角矩形,类似偏好设置表格单元或者地址簿卡片  
    UIButtonTypeDetailDisclosure,//蓝色的披露按钮,可放在任何文字旁  
    UIButtonTypeInfoLight,//微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁  
    UIButtonTypeInfoDark,//白色背景下使用的深色圆圈信息按钮  
    UIButtonTypeContactAdd,//蓝色加号(+)按钮,可以放在任何文字旁  
} UIButtonType;  

2.UIButton的状态:

typedef NS_OPTIONS(NSUInteger, UIControlState) {  
    UIControlStateNormal       = 0,    //正常状态
    UIControlStateHighlighted  = 1 << 0,     //高亮状态             // used when UIControl isHighlighted is set  
    UIControlStateDisabled     = 1 << 1,    //禁用状态
    UIControlStateSelected     = 1 << 2,         //选中状态         // flag usable by app (see below)  
    UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use  
    UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use  
};

3.UIButton的事件类型:

typedef NS_OPTIONS(NSUInteger, UIControlEvents) {  
    UIControlEventTouchDown           = 1 <<  0,      // on all touch downs  
    UIControlEventTouchDownRepeat     = 1 <<  1,      // on multiple touchdowns (tap count > 1)  
    UIControlEventTouchDragInside     = 1 <<  2,  
    UIControlEventTouchDragOutside    = 1 <<  3,  
    UIControlEventTouchDragEnter      = 1 <<  4,  
    UIControlEventTouchDragExit       = 1 <<  5,  
    UIControlEventTouchUpInside       = 1 <<  6,  
    UIControlEventTouchUpOutside      = 1 <<  7,  
    UIControlEventTouchCancel         = 1 <<  8,  

    UIControlEventValueChanged        = 1 << 12,     // sliders, etc.  

    UIControlEventEditingDidBegin     = 1 << 16,     // UITextField  
    UIControlEventEditingChanged      = 1 << 17,  
    UIControlEventEditingDidEnd       = 1 << 18,  
    UIControlEventEditingDidEndOnExit = 1 << 19,     // 'return key' ending editing  

    UIControlEventAllTouchEvents      = 0x00000FFF,  // for touch events  
    UIControlEventAllEditingEvents    = 0x000F0000,  // for UITextField  
    UIControlEventApplicationReserved = 0x0F000000,  // range available for application use  
    UIControlEventSystemReserved      = 0xF0000000,  // range reserved for internal framework use  
    UIControlEventAllEvents           = 0xFFFFFFFF  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值