【发布时间】:2022-07-17 19:34:29
【问题描述】:
我试图在一个视图中制作动画,让它看起来好像是从另一个视图打开的一种抽屉。这一切都很好,除非第一个视图不是不透明的。您似乎可以在动画开始动画的那一刻看到动画视图。有没有办法剪辑这个,看起来视图是从底部视图的顶部开始增长的?
即使没有不透明度,如果您从中制作动画的位置没有被覆盖(在第二个 gif 中演示),这也是一个问题
示例代码:
struct ContentView: View {
@State private var showingSecondView: Bool = false
var body: some View {
VStack(spacing: 0) {
Spacer()
if showingSecondView {
ZStack {
Color.green.opacity(0.25)
Text("Second View")
}
.frame(width: 300, height: 300)
.transition(.move(edge: .bottom))
}
ZStack {
Color.black.opacity(1)
Text("First View")
}
.frame(width: 300, height: 300)
Button("Animate In / Out") {
showingSecondView.toggle()
}
.padding()
}
.animation(.easeInOut, value: showingSecondView)
}
}
【问题讨论】:
标签: ios swift swiftui swiftui-animation