В iOS выполняется ли целевое действие GestureRecogizer в отдельном потоке? - PullRequest
1 голос
/ 14 января 2012

Вот проблема, в пользовательском интерфейсе моего приложения для iPhone у меня есть кнопка и другой imageView, который принимает распознаватель жестов Touch, оба имеют целевые действия. Если я касаюсь кнопки и вида по одному, все в порядке. Но если я коснусь этих двух одновременно или в быстрой последовательности, все испортится. Обработчик кнопки и жеста манипулирует одними и теми же переменными состояния, поэтому, если они работают рядом, результат будет недетерминированным.

Я попытался решить эту проблему, отключив кнопку сразу же, как я попал в обработчик распознавания жестов, и включив ее прямо перед выходом из обработчика. Но это не решает мою проблему !!!

Таким образом, единственная возможность (мое предположение) состоит в том, что распознаватель жестов запускается, когда работает обработчик кнопки. Но это может произойти, только если они находятся в отдельных потоках. Так кто-нибудь знает, работает ли обработчик распознавания жестов в другом потоке? Или, более конкретно, к моей проблеме, что мне делать в моей ситуации? Использовать защитные переменные для предотвращения конфликта?

1 Ответ

0 голосов
/ 16 января 2012

поместите этот код в класс, который реализует делегат распознавателя жестов

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; }

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