Objective c 如何禁用触摸开始:多点触摸?

Objective c 如何禁用触摸开始:多点触摸?,objective-c,cocoa-touch,touch,multi-touch,Objective C,Cocoa Touch,Touch,Multi Touch,我当前在中获得1个对象 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 当我同时用两个手指轻触时(按住option键并单击模拟器)。我相信这是因为我没有启用 touches 附加视图的属性。我想这样做,这样我就不会为多次触摸注册此事件 看看这个问题,如果我启用multipleTouchEnabled,然后执行,它似乎会起作用 multipleTouchEnabled 在我的 if ([touches co

我当前在中获得1个对象

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
当我同时用两个手指轻触时(按住option键并单击模拟器)。我相信这是因为我没有启用

touches 
附加视图的属性。我想这样做,这样我就不会为多次触摸注册此事件

看看这个问题,如果我启用multipleTouchEnabled,然后执行,它似乎会起作用

multipleTouchEnabled 
在我的

if ([touches count] > 1) {
    return;
}

然而,这对我来说似乎很奇怪,因为我正在启用MultipleToTouchEnabled来禁用多重触摸,并且担心是否会有副作用。有没有更好的方法来解决我的问题?

您可以使用手势识别器,这可能比触摸代理更容易阅读,即使您的代码工作正常:

touchesBegan:

如果必须使用NSTouchs,则可以使用以下方法来实现所需的任务

你可以玩更多的游戏

设置多点触控:

保持

视图的setExclusiveTouch设置为YES


首先将手势识别器添加到视图中:

[view setMultipleTouchEnabled:NO];
[view setExclusiveTouch:YES];

希望它能对您有所帮助。

您应该能够禁用视图上的多点触控属性,在IB中,您必须实际转到侧面板,单击“文件所有者”旁边的“视图”以获取它,然后取消选中它,或者您可以在viewdidload中的代码中执行此操作:


self.view.multi-touchEnabled=否

您可以使用这条线避免在一个点上进行多次触摸,将独占触摸设置为“是”

UITapGestureRecognizer *multipleTouches = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleMultiTap:)];
multipleTouches.numberOfTouchesRequired = 2;
[yourViewName addGestureRecognizer:multipleTouches];
[multipleTouches release];

请记住:在真实的设备上,用户的手指不太可能同时触摸屏幕。您应该准备好使用不同的触摸调用两次(或更多)的
-touchsbegind:
UITapGestureRecognizer *multipleTouches = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleMultiTap:)];
multipleTouches.numberOfTouchesRequired = 2;
[yourViewName addGestureRecognizer:multipleTouches];
[multipleTouches release];
[self.view setExclusiveTouch:YES];