在我的应用中,我有这样的观点:
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()
}
}
在“ IntroductionView”中,我有这样的按钮:
Button(action: {
let generator = UINotificationFeedbackGenerator()
generator.notificationOccurred(.success)
let defaults = UserDefaults.standard
defaults.set(true, forKey: "haveSeenIntroduction")
withAnimation {
self.haveSeenIntroduction = true
}
})
当我按下按钮时,在父视图中使用ZStack时,过渡看起来很麻烦(以前的视图“跳起来”,看起来很可怕),而使用组过渡根本不会发生。如何解决此问题并实现这两个视图之间的过渡而不会出现滞后,跳跃等情况?
答案 0 :(得分:1)
您应该在视图上设置.transition(.scale)
,而不是在堆栈上显示过渡