UIButton的运用
本节知识点:
- UIButton的基本用法
- UIButton的代码创建
1. UIButton的基本用法
- 按钮既能显示文字,又能显示图片
- 可以改变位置
type属性
- 知识点:Detail Disclosure/info Light/info Dark长一样(iOS7以前不一样,扁平化以后都一样,残留的东西)
自定义按钮
- type自动改成了custom
按钮的状态
- 高亮状态:改变文字和图片、背景图片(区别系统自带效果)
拖线打印,引出disable Enable的属性变为NO
- 设置disable状态下的文字
- 改变文字
- 通过代码改变按钮的状态
2. UIButton的代码创建
代码创建
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; //等价 UIButton *btn = [[UIButton alloc] init];
创建一个按钮
- 图片、背景图片、标题、标题颜色和设置尺寸
监听按钮点击
- 只要按钮触发了UIControlEventTouchUpInside事件,就会调用self对象的buttonClick方法
[btn addTarget:self action:@selector(buttonClick) forCOntrolEvents:UIControlEventTouchUpInside];
按钮、lable、UIImageView的区别
UIButton
- 既能显示文字,又能显示图片(能显示2张图片,背景图片、内容图片)
- 长按高亮的时候可以切换图片\文字
- 直接通过addTarget…方法监听点击
UIImageView
能显示图片,不能直接通过addTarget…方法监听点击
UILabel
能显示文字,不能直接通过addTarget…方法监听点击
调用带参数的方法
//谁调用参数传的就是谁,这里btn调用所以buttonClick:(参数){}传的就是btn [btn addTarget:self action:@selector(buttonClick:) forCOntrolEvents:UIControlEventTouchUpInside];
示例
// 1. 创建按钮 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; // UIButton *button = [[UIButton alloc]init];// 和上面一行代码等价 // 注意:按钮创建好之后,按钮的类型是不可以被修改 // button.buttonType = UIButtonTypeCustom ; // 错误写法,系统会报错 // 2. 设置位置尺寸 button.frame = CGRectMake(100, 200, 200, 50); // 3. 设置文字 // 3.1 常态的文字 [button setTitle:@"我是按钮" forState:UIControlStateNormal]; // 3.2 高亮状态的文字 [button setTitle:@"我是高亮按钮" forState:UIControlStateHighlighted]; // 4. 设置字体颜色 // 4.1 常态的字体颜色 [button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal]; // 4.2 高亮状态的字体颜色 [button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted]; // 4. 设置图片 // 4.1 常态下的图片 [button setImage:[UIImage imageNamed:@"like"] forState:UIControlStateNormal]; // 4.2 高亮下的图片 [button setImage:[UIImage imageNamed:@"like_pressed"] forState:UIControlStateHighlighted]; // 5. 设置背景图片 // 5.1 常态下的背景图 [button setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal]; // 5.2 高亮下的背景图 [button setBackgroundImage:[UIImage imageNamed:@"buttongreen_hightlighted"] forState:UIControlStateHighlighted]; // 6. 设置按钮点击状态, 默认就是YES ,NO 状态是不可点击 button.enabled = YES; // 7. 将按钮添加入控制器view中 [self.view addSubview:button]; // 8. 监听按钮点击事件 [button addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];