UIControl的主要角色是定义一套接口和基础实现,为iOS的人机交互制定了一系列的标准, 为了当确定的事件发生的时候(比如点击了按钮)准备好动作消息(Action)并开始派发它们到自己的目标(Target,eg:UIViewController)。
UIControl是控件的基类,不能直接的实例化,它只能通过继承的方式为子类提供公共的接口和动作结构。
Target模式就是从UIControl使用的。
UIControlEventTouchDown 控件被按下去的事件
UIControlEventTouchDownRepeat 控件被重复点击的时间,点击次数超过一次
UIControlEventTouchDragInside 在控件范围内按下并拖动的事件
UIControlEventTouchDragOutside 在控件范围内按下并在控件外面拖动的事件
UIControlEventTouchDragEnter 从控件范围外拖动到控件范围内的事件
UIControlEventTouchDragExit 从控件范围外拖动到控件范围内的事件
UIControlEventTouchUpInside 点击控件后在控件范围内释放触发事件
UIControlEventTouchUpOutside 点击控件后在控件范围外释放触发事件
UIControlEventTouchCancel 触摸取消事件
UIControlEventValueChanged 当控件的值发生改变时,发送通知。用于滑块,分段控件,以及其他取值控件。
UIControlEventEditingDidBegin 文本控件开始编辑时发送通知
UIControlEventEditingChanged 文本控件中的内容被改变是发送通知
UIControlEventEditingDidEnd 文本控件结束编辑的时候发送通知
UIControlEventEditingDidEndOnExit 文本控件内通过按下回车(或等价行为)结束编辑时,发送通知。
UIControlEventAllTouchEvents 通知所有触摸事件
UIControlEventAllEditingEvents 通知所有关于文本编辑的时间。
UIControlEventApplicationReserved 为应用程序预留
UIControlEventSystemReserved 为系统内部框架预留
UIControlEventAllEvents 通知所有事件
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
};