UIView задержки анимации - PullRequest
1 голос
/ 13 июня 2011

Я замечаю, что анимации UIView с использованием методов класса UIView, похоже, более или менее ставят программу в «паузу», пока не завершатся.

Есть ли способ запустить анимацию, которая, например, длится 3 секунды, и пока она анимируется, другие аспекты программы все еще работают, принимая сенсорные события и т. Д.?

Ответы [ 2 ]

4 голосов
/ 13 июня 2011

Да, UIKit по умолчанию блокирует взаимодействие во время анимации.Для переопределения установите UIViewAnimationOptionAllowUserInteraction:

[UIView animateWithDuration:0.3 delay:0.0
                    options:UIViewAnimationOptionAllowUserInteraction
                 animations:^
 {
     // ...
 } completion:NULL];
1 голос
/ 13 июня 2011

UIKit не является потокобезопасным, поэтому вся такая анимация должна выполняться в основном потоке, а не в фоновом потоке Цитировать из документации Apple:

Threading

Соображения Манипуляции в пользовательский интерфейс вашего приложения должно происходить в основном потоке. Таким образом, Вы всегда должны вызывать методы класс UIView из кода, работающего в основная тема вашего приложения. Единственный раз, когда это не может быть строго необходимо при создании вида сам объект; но все остальные манипуляции должны происходить на главной нить.

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