我有一个黄色的容器,里面有一个绿色的视图。我想移动容器,同时隐藏/显示内部绿色视图,并带有动画。目前,我使用.offset
的是运动,以及if
绿色视图过渡的声明。
问题是,虽然黄色容器移动了,但绿色视图却没有。它只是在目标偏移处淡入淡出。我希望它也能沿着黄色容器移动。
这是我的代码:
struct ContentView: View {
@State var showingSubview = false
var body: some View {
VStack {
Button("Show Subview") {
withAnimation(.easeInOut(duration: 2)) {
showingSubview.toggle()
}
}
if showingSubview {
Text("Subview")
.padding()
.background(Color.green)
}
}
.padding()
.background(Color.yellow)
.offset(x: showingSubview ? 150 : 0, y: 0)
}
}
如何使绿色视图随着黄色容器一起移动,因为它淡入淡出?最好,我想继续使用if
orswitch
语句进行插入/删除。