2014-12-09 57 views
0

这是一个UIView,它是黄色的矩形,我重写drawRect:方法绘制红色区域,我添加了UITapGesture等,但我只想响应红色区域,如果用户在黄色内部单击矩形,但不在红色区域,我不会回应。我是否需要手动获取位置并计算它是否在范围内?任何更聪明的方式呢?谢谢。 enter image description here如何限制用户与UIView内部区域的交互?

+0

如果你不需要黄色矩形,你可以做什么而不是重写'drawRect'方法,只需旋转UIView并添加一个手势识别器到视图。或者创建两个视图,并让最内层​​的视图对触摸做出响应。这可能会更容易。 – KerrM 2014-12-09 11:30:10

+0

我想,它会很容易地创建你的红色矩形作为一个视图,旋转此视图redRectangleView 45度。并添加到此视图的手势。但有几种方法。 – 2014-12-09 11:30:12

+0

而不是重写uiview中的直接方法并为获取触摸坐标编写逻辑。尝试在带有黄色边框的uiview中添加红色填充颜色的其他视图。它将简化您的逻辑,因为您只需在红色视图上添加手势即可。 – 2014-12-09 11:30:56

回答

0

我知道的唯一解决方案是实现gestureRecognizer:shouldReceiveTouch:委托方法,并验证您的触摸是在红色矩形内/外。