2

我的可拖动按钮正在使用这些事件进行拖动:

[button addTarget:self action:@selector(beganDragging:)
                     forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(wasDragged:withEvent:)
                     forControlEvents:UIControlEventTouchDragOutside | UIControlEventTouchDragInside];
[button addTarget:self action:@selector(exitDragging:)
                     forControlEvents:UIControlEventTouchUpInside];

上面是直截了当的。方法wasDragged将 UIButton 的中心调整到 UITouch 位置。但是,在某些情况下,我最终会挂起按钮(通常在手指释放后它会捕捉到网格),因为UIControlEventTouchUpInside从未调用过!

如何?假设我开始拖动一个按钮,并在按住它的同时制作屏幕截图(Power+Home)。当我释放按钮时,不会调用任何事件(即UIControlEventTouchUpInside)。因此,我的按钮被卡住并且没有捕捉到方法中的网格exitDragging

任何灯如何确保exitDragging始终运行?

4

1 回答 1

1

也许将 UIView API 与 等一起使用会更touchesBegan容易touchesEnded

看来您无论如何都没有使用 UIButton 功能。我认为使用 UIButton 的目标机制管理拖动并不是它的本意。

于 2013-04-08T21:11:12.557 回答