【问题标题】:Second finger triggers touchesMoved in SingleTouch-View在 SingleTouch-View 中,第二根手指触发 touchesMoved
【发布时间】:2012-10-04 14:04:21
【问题描述】:

我想为儿童创建一个小型绘图应用程序。我不想实现多点触控绘图应用程序,所以我将绘图视图的 multipleTouchEnabled 设置为 false。

到目前为止,绘图工作正常,但是当孩子用第二根手指触摸视图时,会调用视图的 touchesMoved-eventhandler:

- (void) touchesMoved: (NSSet *) touches withEvent: (UIEvent *)event{
        UITouch *touch = [[event allTouches] anyObject];
        CGPoint touchPoint = [touch locationInView:self];

    //Draw a line from the last touchPoint to here…

}

这样,当孩子用第二根手指触摸屏幕时,会在第一根手指和第二根手指之间画一条线,这是无意的。

有什么办法可以防止这种情况发生吗?

任何帮助将不胜感激

【问题讨论】:

    标签: objective-c ios ipad touch


    【解决方案1】:

    我也有这个问题。你要么必须

    A) 进行检查,只允许触摸移动一定距离。

    B) 检测到第二次触摸时取消所有触摸(重新启用多点触摸)

    否则,单点触摸模式下的第二根手指看起来与系统的移动触摸相同。

    【讨论】:

    • 感谢您的快速回复。有什么方法可以区分第一次触摸和之后的触摸吗?
    • 嗯,我这样做的方式是保持触摸计数(在开始触摸时递增,在结束/取消触摸时递减)。如果它超过 1,那么你知道你有第二次触摸。但是,很难(也许不可能)跟踪单个触摸。我确实隐约记得一个方法,但我可能记得 Android。
    • Thx 我现在只是保存第一个 UITouch 的指针,并将它与我在 touchesMoved 中获得的触摸进行比较。通过这个,我可以区分第一次之后的触摸。当第一次触摸调用 touchesEnd 时,我只需释放指针。这对我来说似乎工作正常。再次感谢您的帮助。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多