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