прикосновенияПереводится без прикосновений - PullRequest
2 голосов
/ 13 марта 2012

У меня есть много пользовательских UIViews внутри контейнера, которые я анимирую после того, как пользователь перемещает их. Чтобы отследить их движение, я получаю текущую позицию с помощью touchesBegan: и обновляю позицию с помощью touchesMoved:.

Иногда, особенно если я переместил вид совсем недавно (и он все еще может анимироваться обратно в исходное положение), если я начну перетаскивать другой вид, селектор touchesBegan: не будет вызываться, но touchesMoved: и touchesEnded: будет. Как можно вызывать touchesMoved: и touchesEnded: без вызова сначала touchesBegan: в представлении?

Ответы [ 2 ]

2 голосов
/ 08 сентября 2012

Я обнаружил похожую проблему с моим приложением.Когда я анимирую вид, отличный от другого, если я быстро касаюсь первого вида и начинаю смахивать, событие touchesBegan никогда не возникает, но я начинаю получать touchesMoved после того, как первый вид исчез.

В соответствии с этимответ, приложение запускается, игнорирует события взаимодействия с пользователем, когда я вызываю animateWithDuration: delay: options: анимации: завершение: , события взаимодействия с пользователем игнорируются при анимации, что, я думаю, согласуется с тем, что мы оба видим.Попробуйте использовать опцию UIViewAnimationOptionAllowUserInteraction или свойство userInteractionEnabled;это должно позволить событиям проходить так, как вам требуется.

1 голос
/ 13 марта 2012

Вероятно, стоит перечитать Apple Docs . Я не уверен, если touchesBegan будет гарантировано , который будет вызван.

Я предполагаю, что вы регистрируете события touchesBegan и т.д. Возможно, корректные события запускаются, но сообщения журнала появляются "не в порядке"?

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