Блокируют ли CALayers события Touch в базовых представлениях? - PullRequest
0 голосов
/ 22 декабря 2008

У меня есть приложение с представлением, содержащим несколько подпредставлений. Подвид не реализовал никакой логики прикосновений. Superview реализовал всю логику прикосновений и манипулировал каждым подпредставлением соответственно, если оно было затронуто (определяется тестированием попаданий)

С тех пор я преобразовываю свои подпредставления в слои. Теперь моя проблема заключается в том, что, если я коснусь слоя, представление суперслоя в режиме хостинга никогда не вызовет метод touchesbegins. Однако, если я коснусь фона, метод touchesbegin срабатывает.

Из документации я понял, что слои не могут обрабатывать события, если это так, почему он блокирует события в представлении хостинга?

Спасибо за любую помощь, я не могу разобраться с этим.

-Corey

Ответы [ 3 ]

2 голосов
/ 23 декабря 2008

Я обнаружил проблему ... Я выпускал подслои, которые создавал, используя [CALayer layer]. Поскольку я не мог их контролировать, я не должен был ими управлять.

1 голос
/ 22 декабря 2008

CALayers не должны блокировать сенсорные события. Установлен ли ваш флаг userInteractionEnabled в представлении хостинга (звучит так, как если бы вы получали НЕКОТОРЫЕ прикосновения)? Это внутри UIScrollView, который может делать свою собственную обработку прикосновений.

0 голосов
/ 02 марта 2009

В каком классе находится ваш метод touchesBegan? У меня была похожая проблема, потому что мой метод touchesBegan был в подклассе UIView. После перемещения метода в подкласс UIViewController моя проблема была исправлена.

Попробуйте сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...