UI视图交互与事件机制

一、UIButon控件详解

<>UIButtonUILabel的区别与联系

联系:都是UIView的直接或间接的子类,都具有UIView的属性和行为,UIView代表及其子类都代表一个矩形区域。

区别:

    1、UILabel是直接继承UIView,而UIButton是间接继承其父类UIControl是直接继承UIview

     2UIView有一个属性叫做userInteractionEnable(该属性决定是否能够接受并响应事件),UILabel为NO,UIcontrol及其所有的子类的userInteractionEnable属性的值默认为YES,UIControl及其子类响应事件往往是通过addTarget方法,天加点击事件

<二>UIButton的创建

1、通过默认样式创建

2、通过自定义创建

<三>属性

配置按钮标题的属性和方法:


- titleLabel属性:按钮标题的标签

- titleForState:方法:指定状态下的按钮标题

- setTitle:forState:方法:设置指定状态下按钮的标题

- titleColorForState:方法:指定状态下的按钮标题颜色

- setTitleColor:forState:方法:设置指定状态下按钮标题的颜色

- setTitleShadowColor:forState:方法:设置指定状态下按钮标题阴影的颜色


配置按钮显示的方法:


- backgroundImageForState:方法:获得指定状态下的背景图

- setBackgroundImage:forState:方法:设置指定状态下的背景图

- imageForState:方法:获得指定状 态下的按钮图片

- setImage:forState:方法:设置指定状态下的按钮图片


配置边距的属性:


- contentEdgeInsets属性:内容的边距

- titleEdgeInsets属性:标题的边距

- imageEdgeInsets属性:图片的边距


获取按钮当前状态的属性:


- buttonType属性:可能的取值包括UIButtonTypeCustom、UIButtonTypeSystem、UIButtonTypeDetailDisclosure、UIButtonTypeInfoLight、UIButtonTypeInfoDark、UIButtonTypeContactAdd、UIButtonTypeRounedRect(过时)。

- currentTitle属性:按钮上当前显示的标题

- currentTitleColor属性:当前标题颜色

- currentImage属性:按钮上当前显示的图片

- currentBackgroundImage属性:按钮上当前显示的背景图片

- imageView属性:按钮上的图片视图


继承自UIControl的属性和方法:


- addTarget:action:forControlEvents:方法:将为事件添加的消息接受者和对应的动作加入事件派发表,简而言之就是为控件绑定事件处理的回调方法

- removeTarget:action:forControlEvents:方法:与上面方法的作用相反

- enabled属性:控件是启动还是禁用

- state属性:控件所处的状态



###UIButton的常用事件和状态###


我们先说一下UIControl的所有可能的事件。


事件类型|说明

:--|:--

UIControlEventTouchDown|单点触摸按下事件,用户点触屏幕,或者又有新手指落下的时候

UIControlEventTouchDownRepeat|多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候

UIControlEventTouchDragInside|当一次触摸在控件窗口内拖动时

UIControlEventTouchDragOutside|当一次触摸在控件窗口之外拖动时

UIControlEventTouchDragEnter|当一次触摸从控件窗口之外拖动到内部时

UIControlEventTouchDragExit|当一次触摸从控件窗口内部拖动到外部时

UIControlEventTouchUpInside|所有在控件之内触摸抬起事件

UIControlEventTouchUpOutside|所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)

UIControlEventTouchCancel|所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断

UIControlEventTouchChanged|当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送

UIControlEventEditingDidBegin|当文本控件中开始编辑时发送通知

UIControlEventEditingChanged|当文本控件中的文本被改变时发送通知

UIControlEventEditingDidEnd|当文本控件中编辑结束时发送通知

UIControlEventEditingDidOnExit|当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知

UIControlEventAlltouchEvents|通知所有触摸事件

UIControlEventAllEditingEvents|通知所有关于文本编辑的事件

UIControlEventAllEvents|通知所有事件


对于UIButton来说,可能绝大多数处理的都是UIControlEventTouchUpInside事件,简单的说就是按钮点击的事件。


转载于:https://my.oschina.net/MiTuYang/blog/619094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值