[英]Touch Detection of UIButton added as SubView in UIScrollView
[英]Touch detection with UIButton
我在使用UIButton
动作和touchesmoved
时遇到问题。 场景是,当我将手指拖过一系列按钮时,应该调用它的动作。我也可以单独触摸按钮。
我使用touchesmoved
方法找出uibutton上的接触点来触发它的动作。 这种方法的问题是,当我点击视图中的某个位置并将手指移到按钮上时,一切正常,但是如果我开始触摸 UIButton 本身,则不会调用touchesmoved
方法。
如果您不需要知道触摸的确切位置,就在他们滑过它时,您可以向它添加一个目标并使用许多 UIControlEvents 之一,例如 UIControlEventTouchDragInside 等。
这是直接来自UIControl.h
的完整枚举
enum {
UIControlEventTouchDown = 1 << 0, // on all touch downs
UIControlEventTouchDownRepeat = 1 << 1, // on multiple touchdowns (tap count > 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, // sliders, etc.
UIControlEventEditingDidBegin = 1 << 16, // UITextField
UIControlEventEditingChanged = 1 << 17,
UIControlEventEditingDidEnd = 1 << 18,
UIControlEventEditingDidEndOnExit = 1 << 19, // 'return key' ending editing
UIControlEventAllTouchEvents = 0x00000FFF, // for touch events
UIControlEventAllEditingEvents = 0x000F0000, // for UITextField
UIControlEventApplicationReserved = 0x0F000000, // range available for application use
UIControlEventSystemReserved = 0xF0000000, // range reserved for internal framework use
UIControlEventAllEvents = 0xFFFFFFFF
};
typedef NSUInteger UIControlEvents;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.