SwiftUI предлагает два основных подхода к анимации: неявные анимации и явные анимации. Оба позволяют анимировать изменения представлений, но они различаются по тому, как и где объявляется анимация.
Неявные анимации используют модификатор .animation(_:value:), присоединённый непосредственно к представлению. SwiftUI автоматически анимирует любые изменения указанного анимируемого свойства.
Circle()
.scaleEffect(isExpanded ? 2.0 : 1.0)
.animation(.easeInOut, value: isExpanded)
Явные анимации используют withAnimation { } для оборачивания изменений состояния напрямую. Любое анимируемое свойство, затронутое этими изменениями состояния, будет анимировано.
withAnimation(.spring()) {
isExpanded.toggle()
}
withAnimation может анимировать несколько представлений одновременноSwiftUI также поддерживает:
.transition()KeyframeAnimator.easeIn, .spring(), .linear и пользовательских значений AnimationНеявные анимации используют модификатор .animation(_:value:) и автоматически запускаются при изменении указанного значения, держа логику анимации близко к представлению, которое она затрагивает.
Новый — ещё не проверен сообществом
Вы