如何在ScrollView中的图像上绘制形状而不妨碍缩放和滚动?

时间:2013-06-14 13:11:06

标签: ios touch zoom uigesturerecognizer drawrect

我有一个UIScrollView,其中包含一个我可以放大并平移/滚动的图像。我想在这张图片上绘制形状,以便我可以将注意力集中在它的某些部分。我目前通过在drawRect中绘制形状来完成UIViews。

问题在于:我说几乎在整个图像周围画一个形状,或者说我绘制了许多重叠的形状并占据了几乎整个图像。现在,我无法再缩放或平移/滚动,因为UIViews与图像重叠并且不会发生触摸事件。

Example

查看图片以获取示例。如果我什么都不做的话,黄色圆圈会相对无害,因为它不占用大部分图像。只接触那个圈子就是个问题。但是,红色方块肯定是个问题。 UIView明显覆盖了大部分滚动视图,这意味着我不会在滚动视图中获得图像上的触摸事件。

我目前正在向UIImageView添加触摸事件,这是滚动视图的主要内容。我可以对我添加的每个子视图(形状)执行相同的操作,但如果我必须确定一个形状上的1次触摸加上另一个形状上的1次触摸应该像UIImageView上的2触摸事件那样处理,那么这将变得非常复杂我可以用捏手势强制缩放。但这似乎有点矫枉过正(我不知道我会怎么做)。

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

在用于绘制形状的视图上将属性userInteractionsEnabled设置为NO应该可以实现:触摸事件将忽略您无法与之交互的视图。