我有一个视图,我想在其中使用偏移过渡。据我了解,我可以使用 AnyTransition 上的 .animation 函数来覆盖显式动画的动画参数。
在这个简单的示例中,我希望 Rectangle 过渡比移动的文本长 10 倍。
它在使用 AnyTransition.opacity 时有效
struct MyTestView: View {
@State var rectangleExists = false
var body: some View {
VStack {
if rectangleExists {
Rectangle().fill().foregroundColor(.red).padding()
//.transition(AnyTransition.opacity
.transition(AnyTransition.offset(x: 100, y: 0)
.animation(.linear(duration: 5)))
}
Text("Tap Me").onTapGesture {
withAnimation(.linear(duration: 0.5)) {
rectangleExists.toggle()
}
}
}
}
}