通过在swiftui中向下滑动来限制工作表解除

Azh*_*mil 5 ios swift swiftui

我有一个按钮,当我点击它时,一个新的视图将显示为一个工作表。在 SwiftUI 中,默认情况下向下滑动手势将关闭工作表视图。我想限制它。

我会有一个解雇按钮。在我按下那个按钮表之前,不应被解雇。

hst*_*tdt 11

iOS 14:

fullScreenCover(isPresented:onDismiss:content:)

https://developer.apple.com/documentation/swiftui/view/fullscreencover(ispresented:ondismiss:content:)

iOS 15:

interactiveDismissDisabled


小智 5

我们创建了一个 SwiftUI 风格的扩展,位于https://gist.github.com/mobilinked/9b6086b3760bcf1e5432932dad0813c0

/// Example:
struct ContentView: View {
    @State private var presenting = false
    
    var body: some View {
        VStack {
            Button {
                presenting = true
            } label: {
                Text("Present")
            }
        }
        .sheet(isPresented: $presenting) {
            ModalContent()
                .allowAutoDismiss { false }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Jun*_*ang 3

如果您使用 swiftUI,您可能会发现这很有用

https://github.com/egeniq/BetterSheet

它有你想要的功能。

---已编辑---

几个月后重新审视这个问题。如果您不需要额外的库,/sf/answers/4286779311/会很好地为您服务。非常优雅的解决方案。像魅力一样工作。

  • “BetterSheet”在 GitHub 上已死 (2认同)