我如何禁用touchesBegan:多点触摸?

Pop*_*orn 7 cocoa-touch objective-c multi-touch touch

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
Run Code Online (Sandbox Code Playgroud)

我目前正在获得1个对象

touches 
Run Code Online (Sandbox Code Playgroud)

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

multipleTouchEnabled 
Run Code Online (Sandbox Code Playgroud)

所附视图的属性.我想这样做,以便我不会为多点触摸注册此事件.

看看这个问题,如果我启用了multipleTouchEnabled,那么它似乎会起作用

if ([touches count] > 1) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

在我的

touchesBegan:
Run Code Online (Sandbox Code Playgroud)

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

And*_*son 0

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

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myAction:)];
gestureRecognizer.numberOfTouchesRequired = 2;
Run Code Online (Sandbox Code Playgroud)