Как я могу анимировать переход вставки / удаления вида? Анимация вставки не работает - PullRequest
1 голос
/ 27 февраля 2020

Я не могу сделать переход вставки для работы в SwiftUI.

У меня есть Group, который условно отображает одно из двух представлений. Когда я пытаюсь анимировать переход, удаление удаления работает, но вставка не - вид сразу появляется без какой-либо анимации.

Я вставляю под мой код вида. Как я могу сделать эту работу? (Xcode 11.3.1)

struct TestView: View {

    @State private var showView = false

    var body: some View {
        VStack {
            Button(action: {
                withAnimation {
                    self.showView.toggle()
                }

            }) {
                Text("Tap")
            }

            Group {
                if showView {
                    Color.red
                        .frame(width: 100, height: 100)
                } else {
                    Color.blue
                        .frame(width: 100, height: 100)
                        .cornerRadius(50)
                }
            }
            .transition(.asymmetric(insertion: .move(edge: .leading),
                                    removal: .move(edge: .trailing)))
        }
    }
}

Редактировать:

Как указал @Asperi в комментарии, код правильно, но ... это будет работать только при запуске на реальном устройстве. Живые превью в Xcode содержат ошибки и, очевидно, не очень хорошо справляются с переходами.

Так что ответ на этот вопрос прост: тест на реальном устройстве! :)

1 Ответ

2 голосов
/ 27 февраля 2020

Хорошо, хорошо, это просто наблюдение из истории предварительного просмотра SwiftUI и до сих пор (не могу сказать, что будет в следующей версии), но - переходы вообще не работают должным образом в предварительном просмотре (stati c или Live - это выглядит как ограничение, поэтому просто не проверяйте их там.

Тестируйте переходы либо на автономном симуляторе, либо, что предпочтительнее, на реальном устройстве.

...