Как использовать CGRectContainsPoint () с повернутым UIView

у меня естьUIViewи пользователь может нажать наUIView кВыбрать' или выделить в приложении "вещь' что он представляет. я используюCGRectContainsPoint(thing.frame,tapPoint) чтобы достичь этого, гдеthing.frame это рамкаUIView, а такжеtapPoint является повернутой точкой отUITapGestureRecognizer, Это работает отлично.

.. кроме случаевUIView поворачивается путем установкиtransform собственность (сCGAffineTransform значение). КогдаUIView вращается так, тоframe становится плоским квадратом, который заключает в себе повернутый вид.

Вот иллюстрация проблемы (свойство кадра помечено буквой A, а визуальноеUIView bounds помечены B):

Когда НЕ вращается

+------------------+
|      A == B      |
+------------------+

Когда повернуто

+-----------------+
|  A        .     |
|         .   .   |
|       .       . |
|     .       .   |
|   .    B  .     |
| .       .       |
|   .   .         |
|     .           |
+-----------------+

Я хочу захватить краны, которые находятся в пределах прямоугольникаB (истинные границыUIViewповернуто), но НЕ когда онитолько внутри прямойA (значениеframe собственностьюUIView) и не .B

Как я могу рассчитать, находится ли данная точка касания в пределах истинных границ / кадра / границ повернутогоUIView? Есть ли для этого удобный метод? Или мне нужно рассчитать координаты и размерыB используя мою собственную геометрию?

(Если последнее, пожалуйста, включите предложение, чтобы мы могли сделать ответ как можно более полным. Спасибо!)

Ответы на вопрос(3)

Ваш ответ на вопрос