【发布时间】:2014-07-28 00:55:59
【问题描述】:
我看到有人问了几个关于 UITapGestureRecognizer 选择器没有被调用的问题,但我似乎遇到了一些与其他人问的有点不同的问题。我在 UIScrollView 中有一个 UIImageView,我需要检测对图像的点击。
首先加载图像并将 UIImageView 设置为 568 像素高以显示图像 ScaledAspectFill 和点击工作正常。当我检测到双击时,我将缩放设置为 1.0,并将 UIImageView 的大小调整为 960 像素高,这恰好是图像的未缩放大小。
现在乐趣开始了。只要 locationInView.y 在位置 568 内,水龙头就可以正常工作。但是,如果我在图像中点击下方,则不会调用我的选择器。任何解决此问题的帮助将不胜感激。
谢谢,
红色
我已在情节提要中设置了 userInteractionEnabled... 作为在 locationInView.y 小于 568 时通过点击调用选择器以及识别双击时的证明。
这里是设置点击识别器的代码 sn-p## Heading ##:
_tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[_tapGesture setDelegate:self];
[_tapGesture setNumberOfTapsRequired:1];
[_theImageView addGestureRecognizer:_tapGesture];
解决方案:我发现如果您在故事板中使视图非常高(比我可能加载的任何图像都高),即使我以编程方式缩小图像视图,点击也会被识别。但是反过来遇到了问题。如果我将图像视图缩小并以编程方式将其放大,则无法识别点击。
【问题讨论】:
-
您在图像上添加手势识别器并希望从图像外部获取手势?这没有意义。
-
如果不清楚,我很抱歉。 UIImageView 在 UIScrollView 内。所以应该允许用户向下滚动图像并点击下部。用户仍会点击图像。
标签: ios objective-c uiimageview uitapgesturerecognizer