0

我的应用程序中有一个可拖动UIButton的。我希望能够对UIControlEventTouchUpInside. 这很好用。但是,如果用户拖动按钮然后从屏幕上抬起手指,我不希望它触发(此时触发依赖于的动作UIControlEventTouchUpInside)。

有什么方法可以设置我的按钮的触摸事件侦听器,以便在 TouchUpInside 上触发一个事件,但前提是按钮没有被拖动?

4

2 回答 2

2

您必须继承 UIButton,然后覆盖:

- touchesMoved 
- touchesEnded

在 Moved 方法中,将 move 标志设置为 true,在 Ended 方法中,检查该标志。如果为真,请致电超级。否则,将其重定向到 touchDidCanceled。

顺便说一句,如果您向我们展示如何使用手势识别器制作可拖动按钮会更好?

于 2013-09-21T19:06:48.080 回答
0

您也可以这样做,将 UIButton 作为 UIView 的子视图。

现在为 uibutton 设置 touchUpInside 并在 UIView 上添加 panGuesture 。

这就是内部的修饰和拖动永远不会搞砸的方式。

于 2013-09-21T20:25:16.290 回答