在缩放/滚动视图不是1:1时,子视图手势识别问题

时间:2012-02-14 15:23:17

标签: ios uiview uiscrollview uigesturerecognizer uipangesturerecognizer

我有一个UIScrollView,我也创建了Gesture Recognizers。点按,双击,双指点击等。在滚动视图中,我创建了其他几个UIViews。将每个视图视为Drawing对象。圆形,正方形,按钮,图像等。我可以平移,旋转,点击等每个子视图,它们都可以工作。

如果Scaling Scroll View不是100%(1-1),那么平移子视图会有点粗略。您可以随时点击它们以使它们突出显示,但平移,旋转等等是不确定的。通常,如果我尝试平移选定的子视图,则会平移滚动视图。有时候它有效,有时则不然。将缩放设置为100%,或关闭滚动(将刻度设置为相同的最小值/最大值),我可以执行预期的操作。

有关从何处开始排除故障的建议?

1 个答案:

答案 0 :(得分:0)

不是100%为什么会这样,但这是使问题消失的代码。我不得不Subclass UIScrollView,覆盖(BOOL)touchesShouldCancelInContentView:(UIView *)view并返回NO如果视图除了UIView

UIScrollView.View类之外的任何内容
- (BOOL)touchesShouldCancelInContentView:(UIView *)view { 
    BOOL returnVal =  NO;

    if ([view isKindOfClass:[IoScreenEditorContentView class]]) {
        returnVal = [super touchesShouldCancelInContentView:view];
    }
    return returnVal;
}