2012-03-13 5 views
2

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

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

ответ

1

Возможно, стоит перечитать Apple docs. Я не уверен, будет ли touchesBeganгарантировано.

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

+0

Мне показалось, что я помню, как читал, что прикосновение к Бегану было гарантировано, но я думаю, что я забыл. Я регистрирую каждое событие касания, и когда возникает ошибка, он никогда не регистрирует touchsBegan. Если я не смогу найти лучшее решение, я просто буду держать флаг, чтобы указать, когда были вызваныBegan, и выполняются только действия touchesMoved и touchesEnded, когда этот флаг установлен. – Ned

1

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

В соответствии с этим ответом app starts ignores user interaction events when i call animateWithDuration:delay:options:animations:completion: события взаимодействия с пользователем игнорируются во время анимации, что, я думаю, согласуется с тем, что мы оба видим. Попробуйте использовать опцию UIViewAnimationOptionAllowUserInteraction или userInteractionEnabled; что должно позволить события проходить по мере необходимости.

 Смежные вопросы

  • Нет связанных вопросов^_^