我有一个UIView,用户可以点击它UIView来“选择”或突出显示它所代表的应用内“事物”。我用它CGRectContainsPoint(thing.frame,tapPoint)来实现这一点,thing.frame的框架在哪里UIView,并且tapPoint是从UITapGestureRecognizer. 这很完美。
..UIView通过设置transform属性(带有CGAffineTransform值)旋转时除外。当UIView像这样旋转时,frame变成一个扁平的正方形,封装了旋转的视图。
这是问题的说明(框架属性标记为 A,视觉UIView bounds标记为 B):
未旋转时
+------------------+
| A == B |
+------------------+
旋转时
+-----------------+
| A . |
| . . |
| . . |
| . . |
| . B . |
| . . |
| . . |
| . |
+-----------------+
我想捕获在 rect 范围内的抽头B( 的真实边界UIView,旋转),但不是当它们仅在 rect A( 的frame属性的值UIView)而不是B。
我如何计算给定的点击点是否在旋转的真实边界/框架/边界内UIView?有没有方便的方法?或者我是否需要计算B使用我自己的几何图形的坐标和尺寸?
(如果是后者,请提出建议,以便我们尽可能完整地回答。谢谢!)
