简介
UIControl
是很多能够实现动作和反馈的 UI
控件的基类,它继承于 UIView ,并且有许多常用的子类控件,例如 UIButton
,UISwitch
,UISlider
等,是实现交互的重要的类。
特点
UIControl
具有的最大特点即 addTarget
方法:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
复制代码
他可以用来监听交互事件并且触发对应的方法,是我们常用的方法。
而其中监听的交互事件 controlEvents 为 UIControlEvents 的枚举类型包含:
- UIControlEventTouchDown : 点击按钮时触发
- UIControlEventTouchDownRepeat :多点触控时
- UIControlEventTouchDragInside : 在控件内拖动时
- UIControlEventTouchDragOutside : 在控件外拖动时
- UIControlEventTouchDragEnter : 拖动到控件内部时
- UIControlEventTouchDragExit : 拖出控件内部时
- UIControlEventTouchUpInside : 在控件内点击并抬起时,最常用
- UIControlEventTouchUpOutside : 在空间内点击并在控件外抬起
- UIControlEventTouchCancel : 点击取消时
- UIControlEventValueChanged : 在控件的value属性改变时
- UIControlEventEditingDidBegin : 控件开始编辑时
- UIControlEventEditingChanged : 控件内编辑的内容改变时
- UIControlEventEditingDidEnd : 完成编辑时
- UIControlEventEditingDidOnExit : 结束编辑时
- UIControlEventAlltouchEvents: 所有点击事件
- UIControlEventAllEditingEvents : 所有编辑事件
- UIControlEventAllEvents : 所有事件
同时,控件支持的与用户交互的能力,还由控件的状态决定。控件的状态由控件的 state
属性决定,state
属性的类型为 UIControlState
枚举类型,其中常用的有:
- UIControlStateNormal : 普通状态下
- UIControlStateHighlighted : 高亮状态下
- UIControlStateDisabled : 禁用状态下
- UIControlStateSelected : 选择状态下
- UIControlStateFocused : 聚焦状态下
UIControl的属性
属性 | 类型 | 解释 |
---|---|---|
state | UIControlState | 只读,当前控件的状态 |
enabled | BOOL | 控件是否可用 |
selected | BOOL | 控件是否被选择 |
highlighted | BOOL | 控件是否高亮 |
contentVerticalAlignment | UIControlContentVerticalAlignment | 控件垂直对齐 |
contentHorizontalAlignment | UIControlContentHorizontalAlignment | 控件水平对齐 |
effectiveContentHorizontalAlignment | UIControlContentHorizontalAlignment | 获取当前水平对齐方式 |
allTargets | NSSet | 获取所有的 target |
allControlEvents | UIControlEvents | 获取所有的 controlEvents |
tracking | BOOL | 只读,控件是否跟踪触摸事件 |
touchInside | BOOL | 只读,是否在控件内触摸 |
UIControlContentVerticalAlignment
包含:
- UIControlContentVerticalAlignmentCenter : 中间对齐
- UIControlContentVerticalAlignmentTop : 顶部对齐
- UIControlContentVerticalAlignmentBottom : 下部对齐
- UIControlContentVerticalAlignmentFill : 拉伸填充
UIControlContentHorizontalAlignment
包含:
- UIControlContentHorizontalAlignmentCenter : 居中
- UIControlContentHorizontalAlignmentLeft :左对齐
- UIControlContentHorizontalAlignmentRight : 右对齐
- UIControlContentHorizontalAlignmentFill :拉伸填充
- UIControlContentHorizontalAlignmentLeading :与前缘保持一致
- UIControlContentHorizontalAlignmentTrailing : 与后缘保持一致
UIControl的常用方法
-
为控件添加
Target
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; 复制代码
-
移除指定
Target
- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; 复制代码