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