IOS基础学习-2: UIButton

 

IOS基础学习-2: UIButton-LMLPHP

UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关、UIButton按钮、UISegmentedControl分段控件、UISlider滑块、UITextField文本字段控件、UIPageControl分页控件。这些控件的基类均是UIControl,而UIControl派生自UIView类,所以每个控件都有很多视图的特性,包括附着于其他视图的能力。所有控件都拥有一套共同的属性和方法。

具体视图关系如下

IOS基础学习-2: UIButton-LMLPHP

1. 创建按钮

1.1 initWithFrame

UIButton *btn1 = [[UIButton alloc]initWithFrame:CGRectMake(10, 10, 80, 44)];

1.2 类方法buttonWithType

通常采用自定义方法,这样的方式比较灵活

[UIButton buttonWithType:UIButtonTypeCustom];

和UIButtonTypeCustom等同的还有以下方式:

IOS基础学习-2: UIButton-LMLPHP
typedef enum {
UIButtonTypeCustom = 0, // 自定义,常用方式
UIButtonTypeRoundedRect, //白色圆角矩形,类似偏好设置表格单元或者地址簿卡片
UIButtonTypeDetailDisclosure, //蓝色的披露按钮,可放在任何文字旁
UIButtonTypeInfoLight, //小圆圈信息按钮,可以放在任何文字旁
UIButtonTypeInfoDark, //白色背景下使用的深色圆圈信息按钮
UIButtonTypeContactAdd, //蓝色加号(+)按钮,可以放在任何文字旁
} UIButtonType;
IOS基础学习-2: UIButton-LMLPHP

2. 设置按钮属性

2.1 Frame属性

btn.frame = CGRectMake(10.0, 10.0, 60.0, 44.0);  //x, y , weight, height;

或者:

[btn setFrame:CGRectMake(20,20,50,50)];

2.2 设置标题

[btn1 setTitle:@"点击" forState:UIControlStateNormal];  //设置标题
[btn1 setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal]; //设置标题颜色[btn1 setTitleShadowColor:[UIColor grayColor] forState:UIControlStateNormal ];//标题阴影颜色

2.3设置背景图片

 
[btn1 setImage:[UIImageimageNamed:@"btn1Img"] forState:UIControlStateNormal];   //按钮图片
[btn1 setBackgroundImage:[UIImageimageNamed:@"btn1BgImg"] forState:UIControlStateNormal]; //背景图片

2.4 设置按钮图片内部间距

UIEdgeInsets insets;     // 设置按钮内部图片间距
insets.top = insets.bottom = insets.right = insets.left = 10;
btn.contentEdgeInsets = insets; //内容间距
bt.titleEdgeInsets = insets; // 标题间距

3. 按钮状态

3.1 常用状态

forState后,可以选择以下状态,常用的包括:常态,高亮,禁用,选中;

IOS基础学习-2: UIButton-LMLPHP
enum {
UIControlStateNormal = 0, //常态
UIControlStateHighlighted = 1 << 0, // 高亮
UIControlStateDisabled = 1 << 1, //禁用
UIControlStateSelected = 1 << 2, //选中
UIControlStateApplication = 0x00FF0000, //当应用程序标志使用时
UIControlStateReserved = 0xFF000000 //为内部框架预留的
};
typedef NSUInteger UIControlState;
IOS基础学习-2: UIButton-LMLPHP

3.2高亮或者禁用时,微调属性

高亮时,图像颜色会加深,如果要关闭此属性,请设置adjustsImageWhenHighlighted 为NO

btn1.adjustsImageWhenHighlighted = NO;

禁用时,图像颜色会变浅,如果要关闭此属性,请设置adjustsImageWhenDisabled 为NO

btn1.adjustsImageWhenDisabled = NO;

选中时,可以设置按钮发光,请设置showsTouchWhenHighlighted 为YES

btn1.showsTouchWhenHighlighted = YES;

4. 添加动作

IOS基础学习-2: UIButton-LMLPHP
[btn1 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];   //为按钮的行为添加属性

-(void)btnPressed:(id)sender{              //处理按钮按下事件
UIButton* btn = (UIButton*)sender;
if(btn == btn 1){
NSLog(@"btn1 pressed");
}
}
IOS基础学习-2: UIButton-LMLPHP

5. 实例

具体见下面的例子。

04-19 20:18