如何更好地拖动UIButton?未调用UIButton UIControlEventTouchUpInside事件

时间:2013-04-08 20:25:25

标签: iphone ios objective-c uiview uitouch

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

[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始终运行?

1 个答案:

答案 0 :(得分:1)

使用带有touchesBegantouchesEnded等的UIView API可能会更容易。

似乎你无论如何都没有使用UIButton功能。我认为使用UIButton的目标机制管理拖拽不是它的目的。