iOS开发之四:常用控件--UIButton的使用
来源:互联网 发布:扫号器数据从哪弄 编辑:程序博客网 时间:2024/05/22 08:52
在介绍UIButton的用法前,要先了解一下它的父类UIControl,UIControl是所有具有事件处理功能控件的父类。
而该类控件一般响应事件又有三种形式:基于触摸、基础值、基础编辑。控件的层次关系图如下:
UIControl类的常用方法:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; //添加一个事件 - (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; //删除一个事件它的子类因为继承了这些方法,所以也经常用到,比如UIButton。
以上两个方法的中最后一个参数,UIControlEvents为点击事件,是枚举类型。
UIControlEventTouchDown // 用户按下时触发 UIControlEventTouchDownRepeat // 点击次数大于1时触发 UIControlEventTouchDragInside // 当触摸在控件内拖动时触发 UIControlEventTouchDragOutside // 当触摸在控件之外拖动时触发 UIControlEventTouchDragEnter // 当触摸从控件外拖动到内部时 UIControlEventTouchDragExit // 当触摸从控件内拖动到外部时 UIControlEventTouchUpInside // 在控件内触摸抬起时 UIControlEventTouchUpOutside // 在控件外触摸抬起时 UIControlEventTouchCancel // 触摸取消事件,设备被锁上或者电话呼叫打断 UIControlEventValueChanged // 当控件的值发生改变时 UIControlEventEditingDidBegin //文本控件开始编辑时 UIControlEventEditingChanged //文本控件的文本改变 UIControlEventEditingDidEnd //文本控件结束编辑时 UIControlEventEditingDidEndOnExit // 文本控件内通过按下回车键结束编辑时 UIControlEventAllTouchEvents // 所有触摸事件 UIControlEventAllEditingEvents // 文本编辑的所有事件,for UITextField UIControlEventApplicationReserved // range available for application use UIControlEventSystemReserved // range reserved for internal framework use UIControlEventAllEvents //所有事件
UIButton
常用方法如下:
- (void)setTitle:(NSString *)title forState:(UIControlState)state; // default is nil. title is assumed to be single line- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state; // default if nil. use opaque white- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state; // default is nil. use 50% black- (void)setImage:(UIImage *)image forState:(UIControlState)state; // default is nil. should be same size if different for different states- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state; // default is nil- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; //添加一个事件
UIControlState也是个枚举类型:
UIControlStateNormal //正常状态 UIControlStateHighlighted // 高亮状态 UIControlStateDisabled //禁用状态 UIControlStateSelected // 选中状态 UIControlStateApplication // additional flags available for application use UIControlStateReserved
注意:上面的方法中,setTitle和setImage方法不能同时使用,同时使用,只会显示图片,不显示标题。
如果要设置图片和标题,应该setBackgroundImage和setTitle或者自定义一个UIButton的子类来实现。
UIButton各属性设置的实例代码:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; // 设置frame,与按钮的类型有关 button.frame = CGRectMake(90, 100, 41, 30); // 禁用按钮 button.enabled = NO; // 按钮选中 button.selected = YES; // 设置标题,状态正常 [button setTitle:@"normal" forState:UIControlStateNormal]; // 设置标题,状态高亮 [button setTitle:@"highlighted" forState:UIControlStateHighlighted]; // 设置标题,状态禁用 [button setTitle:@"disabled" forState:UIControlStateDisabled]; // 设置标题,状态选中 [button setTitle:@"selected" forState:UIControlStateSelected]; // 设置title的颜色 [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; //设置标题的字体 button.titleLabel.font = [UIFont systemFontOfSize:14.0f]; // 设置背景图片 [button setBackgroundImage:[UIImage imageNamed:@"love_normal"] forState:UIControlStateNormal]; [button setBackgroundImage:[UIImage imageNamed:@"love_select"] forState:UIControlStateHighlighted]; [button setBackgroundImage:[UIImage imageNamed:@"love_select"] forState:UIControlStateSelected]; // 设置图片 [button setImage:[UIImage imageNamed:@"love_normal"] forState:UIControlStateNormal]; [button setImage:[UIImage imageNamed:@"love_select"] forState:UIControlStateSelected]; // 用户在控件内按下抬起时 [button addTarget:self action:@selector(touchUpInside:) forControlEvents:UIControlEventTouchUpInside]; // 用户按下时 [button addTarget:self action:@selector(down) forControlEvents:UIControlEventTouchDown]; // 用户按下时 [button addTarget:self action:@selector(outside) forControlEvents:UIControlEventTouchUpOutside]; // 记录用户多次按下 [button addTarget:self action:@selector(repeat) forControlEvents:UIControlEventTouchDownRepeat]; // 用户由内向外 [button addTarget:self action:@selector(dragExit) forControlEvents:UIControlEventTouchDragExit]; // 用户由外向内 [button addTarget:self action:@selector(dragEnter) forControlEvents:UIControlEventTouchDragEnter]; // 事件的取消 [button addTarget:self action:@selector(cancel) forControlEvents:UIControlEventTouchCancel];
注意了,如果想要UIButton的背景图片显示一张网络图片的话,可以用SDWebImage这个开源框架。
0 0
- iOS开发之四:常用控件--UIButton的使用
- iOS 开发之UIButton的使用
- IOS开发(16)之UIButton控件
- IOS开发UI系列之常用控件 UILabel, UITextField, UIButton, UIImageView等常用属性与方法
- IOS基本控件常用属性及方法(四)---UIButton
- iOS控件之UIButton
- iOS开发之三:常用控件--UILabel的使用
- iOS开发之五:常用控件--UITextField的使用
- iOS开发之六:常用控件--UIImageView的使用
- iOS开发系列之常用自定义控件开发集—继承UIButton控件代码快速创建按钮开发
- iOS开发UI系列之UIButton的基本使用
- iOS开发学习笔记之UIButton的使用
- IOS的基本控件的使用-UIButton
- iOS开发:常用的UIView控件——UILabel、UITextField、UIButton
- iOS开发:常用的UIView控件——UILabel、UITextField、UIButton【转】
- IOS开发之UIButton
- IOS开发之UIButton
- iOS开发之UIButton
- Android Camera照相机
- linux下串口通讯参数设置
- 开源中国.....挂掉了....有图有真相
- Android综合Demo 仿Win8可拖拽界面 自定义控件 自定义spinner,自定义顶栏和副顶栏,内存管理
- PE 节表、对齐值、RVA
- iOS开发之四:常用控件--UIButton的使用
- EasyUI的DataGrid特殊字段的实现
- 第六章 组织、注释、引用代码(一)
- VS2012——WebFroms UnobstrusiveValidationMode 需要“juqry”ScriptResourceMapping.
- cin.getline、getline和gets的区别
- HTTP状态码大全
- hibernate中实现运用分级查询 2
- [Android初级]使用Sqlcipher对sqlite数据库进行加解密
- AJAX实现验证码区的局部刷新(初学AJAX小结)