【发布时间】:2020-08-10 05:35:07
【问题描述】:
我在任何地方都找不到这个问题的答案,希望你们能帮助我。
我有一个包含一些内容的 MainView。按下一个按钮,我想打开一个 DetailView。我正在使用 ZStack 将 DetailView 分层,填充屏幕。
但是使用下面的代码我无法让它工作。 DetailView 在插入时没有过渡,在移除时停止。我尝试过手动设置和不设置 zIndex,以及自定义的 assymetricalTransition。无法让它发挥作用。有什么解决办法吗?
//MainView
@State var showDetail: Bool = false
var body: some View {
ZStack {
VStack {
Text("Hello MainWorld")
Button(action: {
withAnimation(.spring()) {
self.showDetail.toggle()
}
}) {
Text("Show detail")
}
}
if showDetail {
ContentDetail(showDetail: $showDetail)
.transition(.move(edge: .bottom))
}
}
.edgesIgnoringSafeArea(.all)
}
这里是 DetailView:
//DetailView
@Binding var showDetail: Bool
var body: some View {
VStack (spacing: 25) {
Text("Hello, DetailWorld!")
Button(action: { withAnimation(.spring()) {
self.showDetail.toggle()
}
}) {
Text("Close")
}
.padding(.bottom, 50)
}
.frame(width: UIScreen.main.bounds.width,
height: UIScreen.main.bounds.height)
.background(Color.yellow)
.edgesIgnoringSafeArea(.all)
}
我正在运行 Xcode 11.4.1,因此隐式动画似乎也不起作用。真的卡在这里,希望你们中的一个可以帮助我!谢谢:)
【问题讨论】:
标签: swift animation swiftui transition z-index