我在视图主体中有以下代码:
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 图像:
let delayMilisec = DispatchTimeInterval.milliseconds(0.2)
DispatchQueue.main.asyncAfter(deadline: .now() + delayMilisec) {
withAnimation(.easeOut) {
showColorCorrectionMenu.toggle()
}
}