文章目录
UIButton
UIButton基础
- 按钮是所有UI体系中非常重要的组件,在iOS中按钮UIButton的使用也非常灵活
创建文字UIButton
- 对于UI对象 我们在创建的时候注意一些事项,创建UI对象的方法是类方法还是实例方法?
- 创建UI对象之后,需注意大小,位置 颜色 等细节
- 创建一个UIButton
UIButton* btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
只能通过类方法来创建buttonWithType
圆角类型:UIButtonTypeRoundedRect
设置UIButton 的属性
- 设置button按钮初始化位置
btn.frame = CGRectMake(100, 100, 100, 40);
- 设置按钮内容
参数1:字符串类型,显示按钮文字
参数2:设置文字状态类型:UIControlStateNormal 正常状态
[btn setTitle:@"按钮1" forState:UIControlStateNormal];
- 显示文字状态类型
-
IControlStateHighlighted 按下状态
[btn setTitle:@"按钮按下状态" forState:UIControlStateHighlighted]
- 背景颜色
btn.backgroundColor = [UIColor grayColor];
- 设置文字颜色
参数1 颜色
参数2 状态 -
UIControlStateNormal 正常状态
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
- 按下状态颜色
- 参数1 -颜色
参数2 -状态 UIControlStateHighlighted
[btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
- 设置字体大小
btn.titleLabel.font = [UIFont systemFontOfSize:24];
添加到视图屏幕显示
[self.view addSubview:btn];
不带图片的UIButton 效果
带图片的UIButton
- 对于正常的应用程序 我们不可能是这样子的按钮吧,一般来说都是带图片的Button按钮🔘赏心悦目 接下啦演示如何创建一个带图片的Button
- 整体代码
-(void) crateImageBtn {
//创建一个自定义类型button
UIButton* btnImage = [UIButton buttonWithType:UIButtonTypeCustom];
btnImage.frame = CGRectMake(100, 200, 100, 100);
UIImage* icon01 = [UIImage imageNamed:@"btn01.jpeg"];
UIImage* icon02 = [UIImage imageNamed:@"btn02.jpeg"];
//设置按钮图片的方法
//p1 显 示图片对象
//p2 控件状态
[btnImage setImage:icon01 forState:UIControlStateNormal];
[btnImage setImage:icon02 forState:UIControlStateHighlighted];
[self.view addSubview:btnImage];
}
带图片的Button创建注意事项及代码解读
- 我们先自定义一个Button
- 我们的按钮🔘是要有两个状态的 按下和普通状态
UIControlStateNormal 普通
UIControlStateHighlighted 按下
- 两个状态对应的图片加载-图片名字加格式
UIImage* icon01 = [UIImage imageNamed:@"btn01.jpeg"]; UIImage* icon02 = [UIImage imageNamed:@"btn02.jpeg"];
- 设置按钮图片的方法
- 参数一 : 显示图片对象
- 参数二: 控件状态
[btnImage setImage:icon01 forState:UIControlStateNormal];
[btnImage setImage:icon02 forState:UIControlStateHighlighted];
效果
- 普通状态
- 按下状态
UIButton事件处理
- 所谓事件处理就是在按下按钮的时候我们添加我们要用的事件当用户点击按钮的时候会发生按钮所对应的事件 从而达到我们要的功能实现
- 向按钮添加事件函数—一个按钮可以添加多个事件函数
事件处理的多个参数
-事件处理函数
btn addTarget:(nullable id) action:(nonnull SEL) forControlEvents:(UIControlEvents)
先明白参数的意义
1)
p1:谁来实现事件函数,实现的对象就是谁a、
addTarget:self 实现者就是自己
p2:@selector(pressBtn):函数对象,当按钮满足p3事件类型的时候,调用该函数
p3:UIControlEvent:事件处理函数类型
UIControlEventTouchUpOutside:当手指离开屏幕时并且手指的位置在按钮范围之外就会触发事件函数
UIControlEventTouchDown:当我们的手指只要触碰屏幕上时
实现事件
-(void) createButton {
//创建圆角button
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(100, 100, 80, 40);
[btn setTitle:@"按钮1" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];
//UIControlEventTouchUpInside:当手指离开屏幕时并且手指的位置在按钮范围内就会触发事件函数
//2)触碰事件函数
[btn addTarget:self action:@selector(touchDown) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:btn];
//同一个函数可以被不同按钮调用
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn2.frame = CGRectMake(100, 100, 40, 80);
[btn2 setTitle:@"按钮2" forState:UIControlStateNormal];
[btn2 addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn2];
//设置按钮标记--不知道按钮的指针才这样写
btn.tag = 101;
btn2.tag = 102;
事件需要调用的函数(参数之一)
//参数是调用此函数按钮本身--推荐这样写
//好处如下
-(void) pressBtn:(UIButton*) btn {
if (btn.tag == 101) {
NSLog(@"btn1 pressed");
} else {
NSLog(@"btn2 pressed");
}
// NSLog(@"btn pressed");
效果
- 我们先点击按钮一 然后按钮被触碰–打印
- 点击按钮二 然后也被触碰–打印