如何取消uitouches?

时间:2011-07-01 21:20:55

标签: iphone uitouch touchesbegan touchesmoved

在我的应用程序中,我想让用户点击屏幕左侧以提高速度,并在右侧滑动以操作操纵杆。但是,如果用户一直握住左侧,则操纵杆无法正常工作。

我正在使用touchesBegan,touchesMoved等。有没有办法可以从第一次触摸中取消信息并单独操作操纵杆?

我已经尝试[self touchesCancelled: touches withEvent: event];还有其他办法吗?

1 个答案:

答案 0 :(得分:3)

Cocoa Touch框架具有多点触控功能。因此,您无需取消第一次触摸即可使用第二次触摸。只需枚举触摸并在触摸代理中仅使用您想要的操纵杆。

NSArray  *allTouches = [ touches allObjects ];
int      numTouches  = [ allTouches count ];
for (int i=0; i<numTouches; i++) {
    UITouch *theTouch = [ allTouches objectAtIndex:i ];
    if (theTouch != leftSideHoldTouch) {
        // maybe it's a joystick touch, so handle it here
    }
}