7
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

我目前正在获取 1 个对象

touches 

当我同时用两根手指轻按时(按住选项键并单击模拟器)。我相信这是因为我没有启用

multipleTouchEnabled 

附加视图的属性。我想做到这一点,这样我就不会将此事件注册为多点触控。

调查这个问题,如果我启用multipleTouchEnabled,它似乎会起作用,然后做

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

在我的

touchesBegan:

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

4

5 回答 5

2

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

self.view.multiTouchEnabled = 否;

于 2013-02-19T09:25:22.380 回答
1

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

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

希望它会帮助你。

于 2013-02-18T06:13:05.203 回答
0

您可以使用手势识别器,即使您的代码有效,这也可能比 touches 委托更具可读性:

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myAction:)];
gestureRecognizer.numberOfTouchesRequired = 2;
于 2013-02-11T22:29:09.147 回答
0

如果必须使用 NSTouches,那么您可以使用以下方法来实现所需的任务。

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

更多你可以玩

setMultipleTouchEnabled:

通过保持

视图的 setExclusiveTouch 为 YES

于 2013-02-15T00:08:12.280 回答
0

您可以使用这条线来避免一次多次触摸,将独占触摸设置为“是”到您的视图。

[self.view setExclusiveTouch:YES];
于 2016-08-24T09:22:45.687 回答