如何避免触摸取消事件?
-
26-10-2019 - |
题
我有两种观点。我通过触摸感测得的旋转视图旋转下面的视图。在试图进行滑动时,触摸取消的事件在触摸结束事件之前被调用。在移动手指触摸时,开始调用触摸事件,然后在最后(大部分)中调用了最终事件。但是有时在尝试缓慢移动时,触摸取消的事件称为停止触摸事件发生。因此,我无法以缓慢的速度旋转视图。有什么问题?如何避免触摸取消事件?
注意:我正在使用核心图LIB在视图中绘制一些图形。
解决方案
如果您正在使用任何 UIGestureRecognizers
当他们识别出手势时,他们会自动取消对其他视图的触摸。您可以关闭此行为 cancelsTouchesInView
识别器的属性。
其他提示
如果您不直接使用uigestureconizer,请注意Uitouch的属性。我有同样的问题,并且使用此代码我解决了:
if (event.type == UIEventTypeTouches)
{
NSSet* tmpTouches = [event touchesForView:m_PhotoView];
if ([tmpTouches count] == 2)
{
UITouch *tmpTouch1 = [[tmpTouches allObjects] objectAtIndex:0];
UITouch *tmpTouch2 = [[tmpTouches allObjects] objectAtIndex:1];
if ((tmpTouch1 != nil)&&(tmpTouch2 != nil))
{
UIGestureRecognizer * tmpG;
if ([tmpTouch1.gestureRecognizers count] > 0)
{
tmpG = [tmpTouch1.gestureRecognizers objectAtIndex:0];
tmpG.cancelsTouchesInView = NO;
}
if ([tmpTouch2.gestureRecognizers count] > 0)
{
tmpG = [tmpTouch2.gestureRecognizers objectAtIndex:0];
tmpG.cancelsTouchesInView = NO;
}
// Code ...
}
}
}
还要注意uiswipegesturercognizer。这是为我引起的,一旦我们设置了
[recognizer setCancelsTouchesInView:FALSE];
如果一个 滚动视图 参与, 取消选中 它的属性内容触摸 可以在滚动上取消 在故事书中。
不隶属于 StackOverflow