withAnimation — это функция SwiftUI, которая оборачивает изменения состояния в явный контекст анимации, гарантируя, что любое представление, зависящее от изменённого состояния, автоматически будет анимировать свой переход.
Когда ты изменяешь состояние внутри withAnimation, SwiftUI определяет, какие представления затронуты этим состоянием, и анимирует их изменения. Без этого обновления представлений, управляемые состоянием, появляются мгновенно без переходов.
Базовое использование:
withAnimation {
isExpanded.toggle()
}
Ты можешь передать нужную кривую анимации прямо в withAnimation, чтобы управлять характером перехода:
withAnimation(.spring()) {
isExpanded.toggle()
}
Распространённые типы анимации:
.easeIn / .easeOut / .easeInOut — стандартные кривые замедления/ускорения.spring() — физически правдоподобное, естественное движение.linear(duration:) — постоянная скорость на протяжении заданной длительностиwithAnimation обеспечивает явную анимацию, в отличие от неявной анимации, применяемой через модификатор .animation()Когда ты изменяешь state внутри withAnimation, SwiftUI автоматически анимирует все views в иерархии view, независимо от того, зависят ли они от измененного state.
Новый — ещё не проверен сообществом
Вы