Как использовать 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
используя мою собственную геометрию?
(Если последнее, пожалуйста, включите предложение, чтобы мы могли сделать ответ как можно более полным. Спасибо!)