0

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

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

谢谢

黑塔尔

4

2 回答 2

2

根据您的最后评论,我建议尝试以下操作:

在您的viewDidLoad方法中添加以下内容:

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

其中 dragView 是你的矩形视图。

以下可能不是上述工作所必需的,但无论如何清理视图层次结构可能是一种好习惯:

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

于 2012-10-25T19:11:29.457 回答
2

这应该也可以,并且稍微简洁一些:

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

于 2013-09-25T09:33:27.903 回答