接触量

时间:2009-08-08 21:51:09

标签: iphone cocoa-touch

我想在屏幕上的任何位置获得点击量。

这是我的代码:

-(void) touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event
{
    DebugLog(@"touches: %d", [touches count]);
}

此方法在活动视图控制器中实现。

但它没有检测到多次点击 - 它会将它们报告为单击。

如何获得水龙头数量?

感谢。

2 个答案:

答案 0 :(得分:3)

问题在于如何在该方法中报告触摸。该方法中的NSSet touches包含一个或多个UITouch实例,每个UITouch实例表示来自屏幕上单个手指的触摸事件。因此,如果用户用两根手指触摸屏幕,touches集将包含两个UITouch对象。

问题是单个UITouch可能有多个点击而不被视为多个UITouches。如果设备在大致相同的位置检测到两次轻敲(手指向下和向上而没有明显的运动),它会将它们组合成一个包含多个水龙头的UITouch。在这种情况下,您可以使用UITouch上的tapCount选择器来确定触摸的点击次数。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    NSLog(@"Got %u touches", [touches count]);
    for(UITouch *touch in touches) {
        NSLog(@"Touch had %u taps", [touch tapCount]);
    }
}

欲了解更多信息:

答案 1 :(得分:1)

听起来您可能只需通过Interface Builder的View Attributes Inspector在您正在使用的UI元素或视图上启用“Multiple Touch”。

我总是忘记这一点并遇到和你一样的问题,直到我记得两个小时后我必须检查那个盒子。