在SwiftUI中关闭.sheet
视图时,其后面的视图将一秒钟无响应。
在研究此错误期间,我发现工作表的Presentation Controller由UITransitionView
作为后盾,其释放速度不如工作表本身快,因此阻塞了水龙头。问题在于,该UITransitionView
在SwiftUI中不可访问,这使得无法以防止UITransitionView
阻止视图层次的方式配置过渡。
这是有关如何重现此行为的最小示例:
struct ContentView: View {
@State var showSheet: Bool = false
var body: some View {
VStack {
Text("Show the sheeet").onTapGesture(perform: {
self.showSheet.toggle()
})
}
.sheet(isPresented: self.$showSheet, content: {
VStack {
Button("Dismiss Sheet", action: {
self.showSheet.toggle()
})
}
})
}
}
关闭工作表后,视图在约1秒钟内无响应。
那么有什么方法可以防止这种情况,还是我必须纠正自己的自定义表?