SwiftUI 移动过渡不流畅

问题描述 投票:0回答:1

我在视图主体中有以下代码:

  VStack {
      ...
  }
   .fixedSize(horizontal: false, vertical: true)
   .clipped()
   .background {
       Color.blue
   }
   .persistentSystemOverlays(.hidden)
   .transition(.move(edge: .bottom))

该视图在超级视图中显示为覆盖,如下所示:

  .overlay(alignment: .bottom, content: {
        if showColorCorrectionMenu {
            ColorCorrectionMenu()
             .ignoresSafeArea(edges: [.bottom]).frame(height:170)
         }
   }

当我从父视图中关闭它时,我执行以下代码:

 withAnimation(.easeInOut(duration:0.3)) {
             showColorCorrectionMenu.toggle()
 }

当发生转换时,我希望视图从屏幕上移开。但这种转变很奇怪。视图向下滑动,然后闪烁淡出。我不知道如何只显示向下滑动动画而不淡出。这是生成的动画的 GIF 图像:

动画闪烁

ios swift swiftui
1个回答
0
投票
   let delayMilisec = DispatchTimeInterval.milliseconds(0.2)
    DispatchQueue.main.asyncAfter(deadline: .now() + delayMilisec) {
        withAnimation(.easeOut) {
            showColorCorrectionMenu.toggle()
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.