在关闭工作表时,SwiftUI会在几秒钟内无响应

时间:2020-09-18 09:41:53

标签: ios swift swiftui

在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秒钟内无响应。

那么有什么方法可以防止这种情况,还是我必须纠正自己的自定义表?

0 个答案:

没有答案