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)
归档时间: |
|
查看次数: |
10261 次 |
最近记录: |