我有一个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
使用我自己的几何图形的坐标和尺寸?
(如果是后者,请提出建议,以便我们尽可能完整地回答。谢谢!)