Я всегда думал, что Core Animation выполняет анимацию на фоне. Когда я запускаю этот код, мои взаимодействия UI не блокируются до анимации отделки:Почему -animateWithDuration: delay: options: animation: завершение: блокирование пользовательского интерфейса?
[UIView animateWithDuration:4.5
delay:0
options:options
animations:^{
oldView.alpha = 0;
newView.alpha = 1;
}
completion:^(BOOL finished) {
if (finished) {
[oldView removeFromSuperview];
}
}];
Как вы можете видеть, что длительность долго так это ясно видно, что взаимодействия интерфейса блокируются при анимации.
Интерфейс пользовательского интерфейса начинает блокироваться, когда начинается анимация, и заканчивается для блокировки при завершении анимации.
Есть ли способ запустить анимацию UIView одновременно, так что взаимодействия пользовательского интерфейса не блокируются?
EDIT уточнить: Я знаю, что пользовательский интерфейс блокируется, потому что я не могу взаимодействовать с любой управления на экране, почему эта анимация работает. Эти другие элементы управления не связаны с тем, что анимируется и не находятся в одной ветви иерархии представлений. Весь пользовательский интерфейс блокируется при запуске этой анимации. Когда я устанавливаю его на 10 секунд, пользовательский интерфейс блокируется в течение 10 секунд во время анимации. Проверено с прошивкой 4.2 на iPhone 4.
Откуда вы знаете, что это заблокировано? Если в представлении нет альфа-нулевой точки, все представления, стоящие за ней, отключены от взаимодействия. – CodaFi
Обновлен вопрос с разъяснениями. –