0

我正在开发一个 PanGestureRecognizer 使用一系列 if 语句将按钮移动到几个不同位置之一的系统,如下所示:

(IBAction)drag: (UIPanGestureRecognizer *)recognizer
{
    CGPoint touchLocation = [recognizer translationInView:self.view];

    if (touchLocation.x > -12.5 && touchLocation.x < 27.5)
    {
        recognizer.view.center= CGPointMake(30, 486);
    }

    else if (touchLocation.x > 32.5 && touchLocation.x < 72.5)
    {
        recognizer.view.center = CGPointMake(75, 486);

    }

...

我遇到的问题是,当 touchLocation 从按钮右侧开始(被拖到右侧)时,PanGesture 的坐标开始较晚,并且该部分移动较晚。当玩家从按钮的左侧开始触摸时,坐标会正确计数,并且棋子会正常运行。

在编程方面,我仍然是一个完整的新手,所以这甚至可能不是让我的作品首先移动的最有效方式,但我离工作如此之近,我觉得我所需要的只是一个让我的代码按需要工作。请让我知道你的想法!

谢谢!

4

1 回答 1

0

translationInView提供与触摸位置的偏移量,也许您想用来locationInView获取实际的触摸位置?

于 2013-05-15T15:48:49.070 回答