SwiftUI多张图纸:消除动画损坏



我有一个按钮1,按下时显示纸张1。然后我有一个开关,显示了一个按钮2,当按下按钮时,它依次显示纸张2。

如果我只按按钮1,工作表就会显示并以动画方式解除。但是,如果我按下显示按钮2的切换,然后按下按钮1,则图纸驳回动画将中断(只是不设置动画(。

struct ContentView: View {
@State private var showSheetButton2 = false
@State private var showSheet1 = false
@State private var showSheet2 = false
var body: some View {
VStack {
Toggle("Show Sheet Button 2", isOn: $showSheetButton2)
Button(action: {
showSheet1.toggle()
}, label: {
Text("Show Sheet 1")
})
.sheet(isPresented: $showSheet1, content: {
Button(action: {
showSheet1 = false
}, label: {
Text("Dismiss")
})
})
if showSheetButton2 {
Button(action: {
showSheet2.toggle()
}, label: {
Text("Show Sheet 2")
})
.sheet(isPresented: $showSheet2, content: {
Button(action: {
showSheet2 = false
}, label: {
Text("Dismiss")
})
})
}
}.padding()
}
}

编辑:

在iOS 14.5中修复:

您现在可以应用多个工作表(isPresented:onDismiss:content:(同一视图中的fullScreenCover(item:onDismiss:content:(修饰符等级制度(74246633(

不知怎的,If语句中的这张表正在破坏动画。请尝试在此if语句之外添加EmptyView,并将工作表分配给该视图。

if showSheetButton2 {
Button(action: {
showSheet2.toggle()
}, label: {
Text("Show Sheet 2")
})
}
EmptyView()
.sheet(isPresented: $showSheet2, content: {
Button(action: {
showSheet2 = false
}, label: {
Text("Dismiss")
})
})

最新更新