在缩放时,UIScrollview子视图无法识别手势

时间:2012-10-25 18:43:30

标签: iphone ios ipad uiscrollview

我有一个滚动视图,我已将图像视图添加为子视图。 scrollview的内容大小与imageview的大小(宽度和高度)相同。滚动视图外有两个按钮。当我点击它们时,会在imageview中添加一个小矩形视图作为子视图。添加后,用户可以在imageview上的任何位置拖动此矩形视图。

此操作正常,直到我捏缩放滚动视图。在viewForZoomingInScrollView:方法中,我返回imageview并且缩放工作正常。但是在缩放视图中,当我尝试拖动矩形视图时,它不会移动。它不再识别平移手势。知道为什么会这样吗?

由于

Hetal

2 个答案:

答案 0 :(得分:2)

根据您的上一次评论,我建议您尝试以下操作:

viewDidLoad方法中添加以下内容:

for (UIGestureRecognizer *gr in self.scrollView.gestureRecognizers) {
    if ([gr isKindOfClass:[UIPanGestureRecognizer class]])
    {
        [gr requireGestureRecognizerToFail:self.dragGR];
    }
}

其中dragView是你的rectangleView。

以上操作可能不是必需的,但最好还是清理视图层次结构:

使用相同的帧添加一个普通的UIView作为图像视图的超级视图,并将矩形视图添加为该新视图的子视图。在viewForZoomingInScrollView:返回该新视图。正如我在评论中所说,我不认为向UIImageViews添加子视图被认为是一种很好的做法。但也许这只是我的观点:))

答案 1 :(得分:2)

这也应该有效,并且更简洁:

[self.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.myPanRecognizer];