UIControlEventTouchDragInside
, UIControlEventTouchDragEnter
, 和有什么区别UIControlEventTouchUpInside
?一切似乎都一样。
问问题
1089 次
1 回答
1
不,这些都不一样。虽然他们都来自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
这将帮助您对这些事情有一个清晰的认识。
谢谢,希望这有帮助。
于 2016-09-08T07:34:56.810 回答