不,这些都不一样。虽然他们都来自UIControl。
Apple 在 struct 中为 swift 提供了这些东西,而对于 Objective-C,它在 enum 中提供。这两个都在UIControlEvents 内。以下是您可能会看到的struct 和enum。
struct UIControlEvents : OptionSetType { //This is for Swift.
init(rawValue rawValue: UInt)
static var TouchDown: UIControlEvents { get }
static var TouchDownRepeat: UIControlEvents { get }
static var TouchDragInside: UIControlEvents { get }
static var TouchDragOutside: UIControlEvents { get }
static var TouchDragEnter: UIControlEvents { get }
static var TouchDragExit: UIControlEvents { get }
static var TouchUpInside: UIControlEvents { get }
static var TouchUpOutside: UIControlEvents { get }
static var TouchCancel: UIControlEvents { get }
static var ValueChanged: UIControlEvents { get }
static var PrimaryActionTriggered: UIControlEvents { get }
static var EditingDidBegin: UIControlEvents { get }
static var EditingChanged: UIControlEvents { get }
static var EditingDidEnd: UIControlEvents { get }
static var EditingDidEndOnExit: UIControlEvents { get }
static var AllTouchEvents: UIControlEvents { get }
static var AllEditingEvents: UIControlEvents { get }
static var ApplicationReserved: UIControlEvents { get }
static var SystemReserved: UIControlEvents { get }
static var AllEvents: UIControlEvents { get }
}
typedef enum UIControlEvents : NSUInteger { //This is for Objective-C.
UIControlEventTouchDown = 1 << 0,
UIControlEventTouchDownRepeat = 1 << 1,
UIControlEventTouchDragInside = 1 << 2,
UIControlEventTouchDragOutside = 1 << 3,
UIControlEventTouchDragEnter = 1 << 4,
UIControlEventTouchDragExit = 1 << 5,
UIControlEventTouchUpInside = 1 << 6,
UIControlEventTouchUpOutside = 1 << 7,
UIControlEventTouchCancel = 1 << 8,
UIControlEventValueChanged = 1 << 12,
UIControlEventPrimaryActionTriggered = 1 << 13,
UIControlEventEditingDidBegin = 1 << 16,
UIControlEventEditingChanged = 1 << 17,
UIControlEventEditingDidEnd = 1 << 18,
UIControlEventEditingDidEndOnExit = 1 << 19,
UIControlEventAllTouchEvents = 0x00000FFF,
UIControlEventAllEditingEvents = 0x000F0000,
UIControlEventApplicationReserved = 0x0F000000,
UIControlEventSystemReserved = 0xF0000000,
UIControlEventAllEvents = 0xFFFFFFFF
} UIControlEvents;
现在来谈谈苹果对这件事所做的理论解释。顺便说一句,我不是在解释所有事件,而是仅考虑您的要求。
-
UIControlEventTouchDragEnter - 手指被拖入控件边界的事件。(希望你知道frames 和bounds 之间的区别)
-
UIControlEventTouchDragInside - 手指在控件边界内拖动的事件。
-
UIControlEventTouchUpInside - 手指在控件边界内的控件中的触摸事件。
这些都可以从 iOS 2.0 开始。查看TouchUp 和TouchDrag 之间的区别,这也将帮助您对这些事情有一个清晰的认识。
谢谢,
希望这会有所帮助。