UI篇-自定义控件之基类UIControl

2018-01-17  本文已影响0人  進无尽

UIControl的意义所在

UIControl的主要角色是定义一套接口和基础实现,为iOS的人机交互制定了一系列的标准,
为了当确定的事件发生的时候(比如点击了按钮)准备好动作消息(Action)并开始派发它们到自己的目标(Target,eg:UIViewController)。

UIControl是控件的基类,不能直接的实例化,它只能通过继承的方式为子类提供公共的接口和动作结构。

UIControl事件实现原理

自定义控件可以怎样实现

UIControl的重要方法

Target模式就是从UIControl使用的。

UIControlEvents枚举,定义了iOS交互中的交互方式

UIControlEventTouchDown    控件被按下去的事件
UIControlEventTouchDownRepeat  控件被重复点击的时间,点击次数超过一次
UIControlEventTouchDragInside  在控件范围内按下并拖动的事件
UIControlEventTouchDragOutside  在控件范围内按下并在控件外面拖动的事件
UIControlEventTouchDragEnter  从控件范围外拖动到控件范围内的事件
UIControlEventTouchDragExit  从控件范围外拖动到控件范围内的事件
UIControlEventTouchUpInside  点击控件后在控件范围内释放触发事件
UIControlEventTouchUpOutside  点击控件后在控件范围外释放触发事件
UIControlEventTouchCancel  触摸取消事件
UIControlEventValueChanged  当控件的值发生改变时,发送通知。用于滑块,分段控件,以及其他取值控件。
UIControlEventEditingDidBegin  文本控件开始编辑时发送通知
UIControlEventEditingChanged  文本控件中的内容被改变是发送通知
UIControlEventEditingDidEnd  文本控件结束编辑的时候发送通知
UIControlEventEditingDidEndOnExit  文本控件内通过按下回车(或等价行为)结束编辑时,发送通知。
UIControlEventAllTouchEvents  通知所有触摸事件
UIControlEventAllEditingEvents  通知所有关于文本编辑的时间。
UIControlEventApplicationReserved  为应用程序预留
UIControlEventSystemReserved  为系统内部框架预留
UIControlEventAllEvents  通知所有事件

UIControlState定义了控件的基本状态

typedef NS_OPTIONS(NSUInteger, UIControlState) {
UIControlStateNormal       = 0,
UIControlStateHighlighted  = 1 << 0,                  // used when UIControl isHighlighted is set
UIControlStateDisabled     = 1 << 1,
UIControlStateSelected     = 1 << 2,                  // flag usable by app (see below)
UIControlStateFocused NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 3, // Applicable only when the screen supports focus
UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use
UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use
};
上一篇下一篇

猜你喜欢

热点阅读