我无法进行插入转换以在SwiftUI中工作。
我有一个Group
,它有条件地显示两个视图之一。当我尝试为过渡设置动画时,移除过渡有效,但插入无效-该视图立即显示而没有任何动画。
我正在粘贴我的视图代码下方。我该如何工作? (Xcode 11.3.1)
struct TestView: View {
@State private var showView = false
var body: some View {
VStack {
Button(action: {
withAnimation {
self.showView.toggle()
}
}) {
Text("Tap")
}
Group {
if showView {
Color.red
.frame(width: 100, height: 100)
} else {
Color.blue
.frame(width: 100, height: 100)
.cornerRadius(50)
}
}
.transition(.asymmetric(insertion: .move(edge: .leading),
removal: .move(edge: .trailing)))
}
}
}
编辑:
正如@Asperi在评论中指出的那样,代码是正确的,但是...仅当在真实设备上运行时才起作用。 Xcode中的实时预览存在错误,显然不能很好地处理过渡。
因此,此问题的答案很简单:在真实设备上进行测试! :)
答案 0 :(得分:2)
好吧,好吧,这只是从SwiftUI预览历史到现在为止的观察(不能说下一版本中的内容),但是-转换在预览中根本无法正常工作(静态或静态)。直播-看起来很有限,所以不要在那里进行测试。
可以在独立的模拟器上进行转换,也可以在真实设备上进行转换。