Как оживить скрытые виды с помощью SwiftUI?
Я пробую SwiftUI, и, хотя я нашел многие его функции очень элегантными, у меня были проблемы с анимацией и переходами. В настоящее время у меня есть что-то вроде
if shouldShowText { Text(str).animation(.default).transition(AnyTransition.opacity.animation(.easeInOut)) }
Эта метка правильно перемещается, но когда она должна перемещаться (например, когда другой вид сверху скрыт), она не анимируется, как я ожидал, а скорее прыгает на место. Я заметил, что все обертываниеHStack
работает, но я не понимаю, почему это необходимо, и я надеялся, что есть лучшее решение.
Спасибо
1 ответ
Если я правильно понял и реконструировал ваш сценарий, вам нужно использовать явные withAnimation
(в зависимости от потребностей либо для "вида сверху", либо для обоих), как показано ниже
struct SimpleTest: View {
@State var shouldShowText = false
@State var shouldShowAbove = true
var body: some View {
VStack {
HStack
{
Button("ShowTested") { withAnimation { self.shouldShowText.toggle() } }
Button("HideAbove") { withAnimation { self.shouldShowAbove.toggle() } }
}
Divider()
if shouldShowAbove {
Text("Just some above text").padding()
}
if shouldShowText {
Text("Tested Text").animation(.default).transition(AnyTransition.opacity.animation(.easeInOut))
}
}
}
}