1

预期功能:

长按按钮后,可以在屏幕上拖动它。

跳虫:

当我最初开始拖动按钮时,它的中心“跳”到注册我的初始单击以触发长按的 CGPoint。例如,我长按点击右上角的按钮,一旦我开始拖动光标并按住它,按钮就会跳转到“右上角”位置。

在那次跳跃之后 - 所有拖动都很好。

代码:

- (void)longPress:(UILongPressGestureRecognizer*)receivedGesture
{
   if (receivedGesture.state == UIGestureRecognizerStateChanged)
   {
       CGPoint translation = [receivedGesture locationInView:self.scrollView];
       pannedBadge.center = translation;
   }
} 

终极问题:

这里有什么解决方案?如何使初始拖动将按钮从其原始中心移动?

谢谢!

4

2 回答 2

1

我通常为使视图可拖动所做的是检测触摸的起点,然后获取它(触摸)移动的差异,然后将视图的中心设置如下:我没有将其设置为绝对触摸,但我使用刚刚检测到的触摸移动相对设置它。

于 2012-08-26T21:54:33.143 回答
0

原因是您的翻译点是询问手势在视图中的位置,而不是它结束的视图的中心。如果您开始 pannedBadge.center 作为按钮的中心,我应该可以。希望这可以帮助!

于 2012-08-26T21:50:35.017 回答