Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 缩放时,UIScrollview子视图无法识别手势_Iphone_Ios_Ipad_Uiscrollview - Fatal编程技术网

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

Iphone 缩放时,UIScrollview子视图无法识别手势,iphone,ios,ipad,uiscrollview,Iphone,Ios,Ipad,Uiscrollview,我有一个scrollview,其中添加了一个图像视图作为子视图。scrollview的内容大小与imageview的大小(宽度和高度)相同。滚动视图外有两个按钮。当我单击其中一个时,一个小矩形视图作为子视图添加到imageview中。添加此矩形视图后,用户可以将其拖动到imageview上的任何位置 在我按住鼠标缩放滚动视图之前,这一切都很正常。在viewForZoomingInScrollView:方法中,我返回imageview,缩放工作正常。但在缩放视图中,当我尝试在矩形视图周围拖动时,它

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

在我按住鼠标缩放滚动视图之前,这一切都很正常。在
viewForZoomingInScrollView:
方法中,我返回imageview,缩放工作正常。但在缩放视图中,当我尝试在矩形视图周围拖动时,它不会移动。它不再识别平移手势。知道为什么会这样吗

谢谢


Hetal

继您的最后一条评论之后,我建议尝试以下方法:

viewDidLoad
方法中添加以下内容:

for (UIGestureRecognizer *gr in self.scrollView.gestureRecognizers) {
    if ([gr isKindOfClass:[UIPanGestureRecognizer class]])
    {
        [gr requireGestureRecognizerToFail:self.dragGR];
    }
}
其中dragView是您的矩形视图

以下内容可能不是上述工作所必需的,但清理视图层次结构可能是一种良好的做法:


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

继你最后的评论之后,我建议尝试以下方法:

viewDidLoad
方法中添加以下内容:

for (UIGestureRecognizer *gr in self.scrollView.gestureRecognizers) {
    if ([gr isKindOfClass:[UIPanGestureRecognizer class]])
    {
        [gr requireGestureRecognizerToFail:self.dragGR];
    }
}
其中dragView是您的矩形视图

以下内容可能不是上述工作所必需的,但清理视图层次结构可能是一种良好的做法:


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

这也应该有效,而且更简洁一些:


[self.scrollView.pangestrerecognizer-requiregestrerecognizer-tofail:self.myPanRecognizer]

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


[self.scrollView.pangestrerecognizer-requiregestrerecognizer-tofail:self.myPanRecognizer]

当您尝试拖动矩形视图时,是否什么都没有发生,或者是滚动视图被平移了?当我尝试拖动矩形时,滚动视图被平移了。但是矩形上还有一小部分,如果我拖动,它确实会拖动矩形。请提供设置滚动视图、矩形视图、手势识别器和平移处理方法的代码。我运行了一个快速测试,一切正常…哦,等等,我刚刚意识到你提到了添加矩形视图作为UIImageView的子视图?我不认为图像视图应该有子视图。如果您只是将矩形添加为scrollview的子视图,会发生什么情况?在这种情况下,当我按住以缩放时,矩形不会缩放。只有imageview被缩放。因此,我必须将矩形添加到图像视图中。当您尝试拖动矩形视图时,是否没有发生任何事情,或者是滚动视图被平移了?当我尝试拖动矩形时,滚动视图被平移了。但是矩形上还有一小部分,如果我拖动,它确实会拖动矩形。请提供设置滚动视图、矩形视图、手势识别器和平移处理方法的代码。我运行了一个快速测试,一切正常…哦,等等,我刚刚意识到你提到了添加矩形视图作为UIImageView的子视图?我不认为图像视图应该有子视图。如果您只是将矩形添加为scrollview的子视图,会发生什么情况?在这种情况下,当我按住以缩放时,矩形不会缩放。只有imageview被缩放。因此,我不得不将矩形添加到图像视图中。