我在使用UIButton
动作和touchesmoved
时遇到问题。情景是,当我将手指拖动到一系列按钮上时,应该调用它的动作。我也可以单独触摸我的按钮。使用UIButton进行触摸检测
我用touchesmoved
方法找出了uibutton上的触点来触发它的动作。这种方法的问题是,当我点击视图中的任何地方并将按钮移动到按钮上时,一切正常,但是如果我开始在UIButton本身上触摸touchesmoved
方法不会被调用。
我在使用UIButton
动作和touchesmoved
时遇到问题。情景是,当我将手指拖动到一系列按钮上时,应该调用它的动作。我也可以单独触摸我的按钮。使用UIButton进行触摸检测
我用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;
感谢您花时间回答问题。我解决了我的问题。 – Vignesh
听起来像是你在包含所有的按钮UIView的实施touchesMoved。所以这个视图有一个touchesMoved的实现。现在,当你在按钮中启动时,按钮没有touchesMoved的实例,所以它不会调用任何函数,也不会发生任何事情。 – ColdLogic