SwiftUI: Как добавить переходы между условными представлениями? - PullRequest
1 голос
/ 10 февраля 2020

В моем приложении у меня есть такой вид:

import SwiftUI

let defaults = UserDefaults.standard

struct ContentView: View {
    @State var haveSeenIntroduction: Bool = defaults.bool(forKey: "haveSeenIntroduction")

    var body: some View {
        ZStack {
            if self.haveSeenIntroduction {
                DefaultView()
            } else {
                IntroductionView(haveSeenIntroduction: $haveSeenIntroduction)
            }
        }.transition(.scale)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

В «Представлении Введение» у меня есть такая кнопка:

Button(action: {
    let generator = UINotificationFeedbackGenerator()
    generator.notificationOccurred(.success)

    let defaults = UserDefaults.standard

    defaults.set(true, forKey: "haveSeenIntroduction")

    withAnimation {
        self.haveSeenIntroduction = true
    }
})

Когда я нажимаю кнопку, когда использую ZStack в родительском по мнению, переход выглядит глючно (предыдущий вид «подпрыгивает» и выглядит ужасно), при использовании группового перехода вообще не происходит. Как я могу исправить это поведение и осуществить переход между этими двумя представлениями без задержек, скачков и т. Д. c?

1 Ответ

1 голос
/ 10 февраля 2020

Вы должны установить .transition(.scale) в своих представлениях, а не в стеке, чтобы показать переход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...