我的应用程序中有一个可拖动UIButton
的。我希望能够对UIControlEventTouchUpInside
. 这很好用。但是,如果用户拖动按钮然后从屏幕上抬起手指,我不希望它触发(此时触发依赖于的动作UIControlEventTouchUpInside
)。
有什么方法可以设置我的按钮的触摸事件侦听器,以便在 TouchUpInside 上触发一个事件,但前提是按钮没有被拖动?
我的应用程序中有一个可拖动UIButton
的。我希望能够对UIControlEventTouchUpInside
. 这很好用。但是,如果用户拖动按钮然后从屏幕上抬起手指,我不希望它触发(此时触发依赖于的动作UIControlEventTouchUpInside
)。
有什么方法可以设置我的按钮的触摸事件侦听器,以便在 TouchUpInside 上触发一个事件,但前提是按钮没有被拖动?
您必须继承 UIButton,然后覆盖:
- touchesMoved
- touchesEnded
在 Moved 方法中,将 move 标志设置为 true,在 Ended 方法中,检查该标志。如果为真,请致电超级。否则,将其重定向到 touchDidCanceled。
顺便说一句,如果您向我们展示如何使用手势识别器制作可拖动按钮会更好?
您也可以这样做,将 UIButton 作为 UIView 的子视图。
现在为 uibutton 设置 touchUpInside 并在 UIView 上添加 panGuesture 。
这就是内部的修饰和拖动永远不会搞砸的方式。