Я работаю над относительно сложной анимацией в SwiftUI и задаюсь вопросом, какой самый лучший / самый элегантный способ связать различные фазы анимации.
Допустим, у меня есть представление, которое сначала нужно масштабировать, затемподождите несколько секунд, а затем исчезнет (а затем подождите пару секунд и начните сначала - на неопределенный срок).
Если я попытаюсь использовать несколько блоков withAnimation () в одном представлении / стеке, они в конечном итоге будут мешатьдруг с другом и испортить анимацию.
Лучшее, что я мог придумать, это вызвать пользовательскую функцию в модификаторе .onAppear () начальных представлений и в этой функции иметь блоки withAnimation () для каждогоэтап анимации с задержками между ними.В общем, это выглядит примерно так:
func doAnimations() {
withAnimation(...)
DispatchQueue.main.asyncAfter(...)
withAnimation(...)
DispatchQueue.main.asyncAfter(...)
withAnimation(...)
...
}
В итоге получается довольно долго и не очень "красиво".Я уверен, что должен быть лучший / более хороший способ сделать это, но все, что я до сих пор пробовал, не дало мне точный поток, который я хочу.
Любые идеи / рекомендации / советы будут высоко оценены,Спасибо!