Я пытаюсь настроить отображение UIView
на экране в течение 5 секунд при получении удаленного уведомления.
Такой код:
//customView.alpha = 1.0 here
[UIView animateWithDuration:1 animations:^{
customView.alpha = 0.3;
}
completion:^(BOOL finished){
// remove customView from super view.
}];
Проблема и что мне нужно
Но бывают случаи, что пара уведомлений может приходить через короткий промежуток времени, при этом несколько customView
могут анимироваться одновременно. в то же время, и один может покрыть другие.
Я хочу, чтобы эти анимации выполнялись одна за другой, чтобы они не конфликтовали.
Предполагалось, но не удалось
//(dispatch_queue_t)queue was created in other parts of the code
dispatch_sync(queue, ^{
[UIView animationWithDuration:animations:...];
});
После создания анимации в очереди GCD я получил тот же результат, что и исходный код, который я использовал, который не использовал GCD. Анимации по-прежнему конфликтуют.
Кстати,я слышал, чтоанимации или задачи, связанные с пользовательским интерфейсом , всегда должны выполняться в основном потоке, но во втором коде анимация казалась плавной. Почему?