4

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

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

我已经试过了[self touchesCancelled: touches withEvent: event];,还有其他方法吗?

4

1 回答 1

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
    }
}
于 2011-07-01T22:06:58.500 回答