预期功能:
长按按钮后,可以在屏幕上拖动它。
跳跃错误:
当我最初开始拖动按钮时,它的中心“跳转”到注册了我的初始点击的CGPoint以触发长按。例如,我长按其右上角的按钮,一旦我按住它就开始拖动光标,按钮跳转到“右上”位置。
跳跃之后 - 所有拖动都很好。
代码:
- (void)longPress:(UILongPressGestureRecognizer*)receivedGesture
{
if (receivedGesture.state == UIGestureRecognizerStateChanged)
{
CGPoint translation = [receivedGesture locationInView:self.scrollView];
pannedBadge.center = translation;
}
}
终极问题:
这里有什么解决方案?如何使初始拖动从原始中心移动按钮?
谢谢!
答案 0 :(得分:1)
我通常用于制作可拖动视图的是我检测触摸的起点,然后获得它(触摸)移动的差异,然后按如下方式设置视图的中心:我不将其设置为触摸的地方绝对,但我使用刚刚检测到的触摸动作相对设置它。
答案 1 :(得分:0)
原因是您的翻译点询问手势在视图中的位置,而不是视图中心的位置。如果你启动pannedBadge.center作为按钮的中心,我应该工作。希望这有帮助!