Я проголосовал за ответ @ badhangane sh, но хотел упомянуть, что UIView.animate
имеет блок завершения. Вы можете использовать блоки завершения для выполнения кода после того, как что-то сделано, вместо запуска 2-секундной анимации и 2-секундной задержки asyncAfter (что ненадежно).
// run a 0.5 second animation
UIView.animate(withDuration: 0.5, animations: {
// your animations
}, completion: { _ in
// show your view controller once the animation is completed
// if you want to further delay, use asyncAfter
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
// code excutes after 2 seconds
}
})
Аналогично, вы можете создать обработчик завершения для вашей пользовательской функции, которая обрабатывает отображение анимации или сообщения.