我有两种观点。我通过触摸感测得的旋转视图旋转下面的视图。在试图进行滑动时,触摸取消的事件在触摸结束事件之前被调用。在移动手指触摸时,开始调用触摸事件,然后在最后(大部分)中调用了最终事件。但是有时在尝试缓慢移动时,触摸取消的事件称为停止触摸事件发生。因此,我无法以缓慢的速度旋转视图。有什么问题?如何避免触摸取消事件?

注意:我正在使用核心图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];

如果一个 滚动视图 参与, 取消选中 它的属性内容触摸 可以在滚动上取消 在故事书中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top