UIButton
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIButton相关的知识,希望对你有一定的参考价值。
UIButton(按钮):是响应?户点击的控件。侧重于处理?户交互 事件。
- 创建UIButton与创建UILabel、UITextField、UIView的步骤很相似。
1、创建button对象(如果本类有初始化?法,则使???的初始化 ?法;否则使??类的)。
2、设置按钮相关的属性
3、为按钮添加点击事件
4、添加按钮到?视图上,?以显?
5、按钮?需释放(?般情况创建UIButton都使???的便利构造器 ?法,?需释放对象的所有权)
//创建一个UIButton对象, UIButton侧重于交互,响应事件
//如果button样式是system,那么不给定标题颜色,也能看见标题,默认为蓝色
//如果button样式custom,那么除了给定标题内容之外,还需要给定标题文本颜色
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
// UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
//设置frame
button.frame = CGRectMake(100, 400, 200, 200);
//设置button显示的文本(标题)
[button setTitle:@"点这里" forState:UIControlStateNormal];
//设置button的颜色
//如果button样式是system,那么不给定标题颜色,也能看见标题,默认为蓝色
//如果button样式custom,那么除了给定标题内容之外,还需要给定标题文本颜色
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
// UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
//设置frame
button.frame = CGRectMake(100, 400, 200, 200);
//设置button显示的文本(标题)
[button setTitle:@"点这里" forState:UIControlStateNormal];
//设置button的颜色
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
//设置button的背景图片
[button setBackgroundImage:[UIImage imageNamed:@"BtnOff.png"] forState:UIControlStateHighlighted];
//设置button的前景图片
[button setImage:[UIImage imageNamed:@"xigua"] forState:UIControlStateHighlighted];
//点击时如果设置了图片,不出现按钮闪动的效果
button.adjustsImageWhenHighlighted = NO;
//非常关键的方法,为button添加一个事件
//self是执行对象,click是要执行的方法 (必须实现)
[button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
[containerView addSubview:button];
//设置前景图片时,使用custom样式,如果图片大小大于button的大小,那么图片会被压缩到与button等大,如果图片大小小于button的大小,那么图片保留其原有大小
//设置背景图片时,不论使用custom还是system,图片大于或者小于button大小,都会显示的与button等大
点击事件 及 Normal Highlighted Selected 三种state的使用
1.什么都没干的时候:Normal
2.当你的手指按下去,还没放的时候:Highlighted(高亮状态)
3.当手指放开的时候:如果这个 UIControl 有 Selected 状态的话,就会变成: Selected(Selected默认为NO,要显示Selected状态需要在点击方法中代码实现)
//不设置selected的话默认为NO,当前显示Normal、按下Button后为Highlighted状态、松开按钮变回Normal状态
//Normal->Highlighted-> Normal
[button setImage:[UIImage imageNamed:@"BtnOff.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"xigua"] forState:UIControlStateHighlighted];
//当前显示Normal、点击button按住不放,显示Highlighted状态、手指放开为Selected状态、再点击放开为Normal状态
//Normal->Highlighted-> Selected-> Normal
[btn setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
//Normal->Highlighted-> Selected-> Normal
[btn setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"xigua"] forState:UIControlStateHighlighted]; //一般实现两个图片交换时不设置高亮状态,并且将高亮状态设置为NO,此处只是为了演示三种状态的结合使用
[btn setBackgroundImage:[UIImage imageNamed:@"checked"] forState:UIControlStateSelected];
[btn addTarget:self action:@selector(change:) forControlEvents:UIControlEventTouchUpInside];
// btn.adjustsImageWhenHighlighted = NO;
//实现按钮背景图交换的方法,实现selected状态
- (void)change:(UIButton *)button {
button.selected = !button.selected;
}
以上是关于UIButton的主要内容,如果未能解决你的问题,请参考以下文章