- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
我目前正在
中获得一个对象touches
当我同时用两根手指敲击时(按住选项键并点击模拟器)。我相信这是因为我没有启用
multipleTouchEnabled
附加视图的属性。我想这样做,以便我不会为多次触摸注册此事件。
调查问题,如果启用multipleTouchEnabled,它似乎会起作用,然后执行
if ([touches count] > 1) {
return;
}
在我的
中touchesBegan:
然而,这对我来说似乎很奇怪,因为我正在启用multipleTouchEnabled以禁用多个触摸,并担心是否会有副作用。有没有更好的方法来解决我的问题?
答案 0 :(得分:2)
您应该只能在视图上禁用多点触控属性,在IB中您必须实际转到侧面板并单击文件所有者旁边的视图以获取它,然后取消选中它,或者你可以在viewdidload中的代码中完成它:
self.view.multiTouchEnabled = NO;
答案 1 :(得分:1)
首先在您的视图中添加手势识别器:
UITapGestureRecognizer *multipleTouches = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleMultiTap:)];
multipleTouches.numberOfTouchesRequired = 2;
[yourViewName addGestureRecognizer:multipleTouches];
[multipleTouches release];
希望它会对你有所帮助。
答案 2 :(得分:0)
您可以使用手势识别器,即使您的代码有效,这可能比触摸委托更具说明性:
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myAction:)];
gestureRecognizer.numberOfTouchesRequired = 2;
答案 3 :(得分:0)
如果必须使用NSTouches,那么您可以使用以下方法来实现所需的任务。
[view setMultipleTouchEnabled:NO]; [view setExclusiveTouch:YES];
你可以玩
setMultipleTouchEnabled:
保持
查看setExclusiveTouch为YES
答案 4 :(得分:0)
您可以使用此行来避免某个点的多次触摸,为您的视图设置独占触摸“是”。
[self.view setExclusiveTouch:YES];