Обработка нескольких касаний на iPhone - PullRequest
2 голосов
/ 02 февраля 2010

В настоящее время я занимаюсь разработкой приложения, в котором у меня есть вид основного вида с множеством подпредставлений. Теперь у меня есть два конкретных подпредставления, и я хочу, чтобы только одно из них было «осязаемым» одновременно. Таким образом, оба должны иметь возможность реагировать на сенсорное событие, но не должны иметь возможность реагировать на оба одновременно. Поскольку у меня есть другое подпредставление, которое должно быть в состоянии касаться одновременно, я не могу использовать свойство multitouch или exclusiveTouch. Есть идеи по этому поводу? Может быть, я мог бы сгруппировать оба вида в одно касание.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 03 февраля 2010

Вставьте свойство чтения-записи, назовем его viewBeingTouched, в вашем делегате приложения или каком-то другом синглтоне.Убедитесь, что вы используете @property без nonatomic.

. Создайте два экземпляра своего представления, которые переопределяют методы UIResponder следующим образом:

  1. В touchSegan проверьте значение viewBeingTouched.Если это nil, установите его на self и вызовите реализацию супер.В противном случае ничего не делать.

  2. В штрихах закруглите значение viewBeingTouched.Если это self, установите его на ноль.

Получите?Первое касание позволяет захватить свойство и не позволяет другому зарегистрировать его.

0 голосов
/ 03 февраля 2010

Поместите логику в своих родителей, которая (временно) отключает ту, которая не получила прикосновение (userInteractionEnabled = NO).

Конечно, кто-то еще мог бы положить палец на каждого из них одновременно. Вы можете выяснить, какой вид ближе всего к центру касаний.

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