Пользовательская сенсорная область UIView

Здравствуйте, у меня есть несколько странных фигур, которые мне нужно обработать с помощью метода touchesBegan. Проблема в том, что UIViews являются квадратными, и единственный способ сделать это — объявить сетку, а затем проверить координаты. Есть ли другой способ сделать это?


person user281300    schedule 30.06.2012    source источник
comment
Методы touches* дают вам набор объектов UITouch, и координаты этих касаний можно найти с помощью метода (locationInView: IIRC).   -  person C0deH4cker    schedule 30.06.2012
comment
да, но если бы у меня были странные формы uiview, были бы прозрачные области. Думая об обнаружении, прозрачна ли затронутая область.   -  person user281300    schedule 01.07.2012
comment
это по существу означало бы, что мне нужно будет объявить область для каждого файла . Немного громоздко и слишком много работы.   -  person user281300    schedule 01.07.2012


Ответы (2)


Реализуйте hitTest:withEvent: в своем подклассе UIView. Возвращайте YES, только если CGPoint находится внутри фигуры.

Ознакомьтесь с этим вопросом для форм многоугольника: Как определить, находится ли 2D-точка внутри многоугольника ?

person Felix    schedule 30.06.2012

Кроме того, если у вас есть доступ, этот доклад на WWDC 2012 был довольно замечательным в отношении того, как обрабатывать сложные сенсорные события:

https://developer.apple.com/videos/wwdc/2012/?id =200

person Cliff Ribaudo    schedule 30.06.2012