我的可拖动按钮正在使用这些事件进行拖动:
[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
始终运行?