如何缩短"delayTouchesBegan"延迟触摸的时间?

pas*_*aya 17 iphone objective-c touchesbegan ios uitapgesturerecognizer

在我的一个视图控制器中,我有几个包含UITapGestureRecognizer的视图,以及一个实现touchesBegan.我需要优先使用水龙头,touchesBegan所以我将delaysTouchesBegan手势识别器的属性设置为YES.这是正常的,但有一个问题:手势识别器延迟touchesBegan太久.根据文件:

当属性的值为YES时,窗口会暂停UITouchPhaseBegan阶段中触摸对象到视图的传递.如果手势识别器随后识别其手势,则丢弃这些触摸对象.但是,如果手势识别器无法识别其手势,则窗口会以touchesBegan:withEvent:消息(以及可能的后续touchesMoved:withEvent:消息将这些对象传递给视图,以通知其触摸的当前位置) .

问题基本上是当手势识别器不识别手势并将这些对象传递给该手势时touchesBegan,该操作花费的时间太长.无论如何加速它,还是只是处理手势以确定它是否是一个强大的并且不可能缩短?


编辑:

这里有更多信息.这是我用来设置手势识别器的代码:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tapRecognizer.cancelsTouchesInView = NO;
tapRecognizer.delaysTouchesBegan = YES;
tapRecognizer.delegate = self;
tapRecognizer.numberOfTapsRequired = 1;
tapRecognizer.numberOfTouchesRequired = 1;
[self.someView addGestureRecognizer:tapRecognizer];
Run Code Online (Sandbox Code Playgroud)

Seg*_*gev 23

我会改变它UITapGestureRecognizer来解决它UILongPressGestureRecognizer.这两个的标题有点误导,但UILongPressGestureRecognizer你可以设置minimumPressDuration:

手指的最小周期必须按在视图上才能识别手势.

UILongPressGestureRecognizer *tapRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tapRecognizer.delegate = self;
tapRecognizer.minimumPressDuration = //Up to you;
[self.someView addGestureRecognizer:tapRecognizer];
Run Code Online (Sandbox Code Playgroud)