根据苹果文档,我们应该能够直接将动画附加到转换中。例如:
.transition(AnyTransition.slide.animation(.linear))
方法的文档:
extension AnyTransition {
/// Attach an animation to this transition.
public func animation(_ animation: Animation?) -> AnyTransition
}
说:
摘要
将动画附加到此转换。
但我无法使其正常工作。看一下这个最小化可行的示例(您可以复制粘贴它并自行尝试):
import SwiftUI
struct AnimationTest: View {
@State private var show = false
var body: some View {
VStack {
if show {
Color.green
.transition(AnyTransition.slide.animation(.linear))
} else {
Color.yellow
.transition(AnyTransition.slide.animation(.linear))
}
Button(action: {
self.show.toggle()
}, label: {
Text("CHANGE VIEW!")
})
}
}
}
struct AnimationTest_Previews: PreviewProvider {
static var previews: some View {
AnimationTest()
}
}
您可以看到根本没有任何动画效果。有什么想法吗?谢谢。