UIViewAnimation блокирует взаимодействие с пользователем - PullRequest
4 голосов
/ 08 июля 2011

У меня есть UIView, следящий за пальцами пользователей, когда они перемещают его внутри моего приложения. Иногда другие элементы на экране анимируются с помощью блоков UIViewAnimation, но это останавливает отслеживание их пальца, поэтому, если они продолжат двигать пальцем во время анимации, это не произойдет. Как я могу остановить анимацию от блокировки основного потока?

Ответы [ 4 ]

10 голосов
/ 08 июля 2011

Попробуйте использовать UIViewAnimationOptionAllowUserInteraction с [UIView animateWithDuration:delay:options:animations:completion:]

1 голос
/ 08 июля 2011

вы можете использовать метод NSObject: performSelector:onThread:withObject:waitUntilDone:

Подробнее в Документация Apple NSObject

0 голосов
/ 10 декабря 2011

Обратите внимание, что если вы ссылаетесь на iOS 5, эта проблема исчезнет сама собой.В iOS 5 блочная анимация представления не отключает взаимодействие с пользователем для других представлений.Это то, что Apple должна была сделать в первую очередь.

0 голосов
/ 08 июля 2011

Если на экране анимирована какая-либо другая вещь, это также будет сделано в основном потоке. И текущее отслеживание пальцев также будет сделано в основном потоке. Так что определенно будет некоторая блокировка.

Чтобы избавиться от этого, мы можем оптимизировать наш код, используя блоки и GCD .

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