实例方法
interactive
interactiveDismissDisabled(_:)
有条件地阻止弹出框或工作表的交互解除。
声明
func interactiveDismissDisabled(_ isDisabled: Bool = true) -> some View
参数
isDisabled
一个布尔值,指示在工作表或弹出窗口中显示时是否防止包含视图层次结构的非编程解除。
详述
用户可以使用内置手势关闭某些类型的演示文稿。特别是,用户可以通过向下拖动工作表来关闭工作表,或者通过在呈现的视图之外单击或轻敲来关闭工作表。使用interactiveDismissDisabled(_:)
修饰符有条件地防止这种解雇。您通常这样做是为了防止用户在提供所需数据或完成所需操作之前关闭演示文稿。
例如,假设您有一个视图显示用户在继续之前必须确认的许可协议:
struct TermsOfService: View {
@Binding var areTermsAccepted: Bool
@Environment(\.dismiss) private var dismiss
var body: some View {
Form {
Text("License Agreement")
.font(.title)
Text("Terms and conditions go here.")
Button("Accept") {
areTermsAccepted = true
dismiss()
}
}
}
}
如果您在工作表中显示此视图,用户可以通过点击按钮(从其 action
闭包中调用 EnvironmentValues/dismiss
)或向下拖动工作表来关闭它。为确保用户通过点击按钮接受条款,禁用交互式解雇,以areTermsAccepted
属性为条件:
struct ContentView: View {
@State private var isSheetPresented = false
@State private var areTermsAccepted = false
var body: some View {
Button("Use Service") {
isSheetPresented = true
}
.sheet(isPresented: $isSheetPresented) {
TermsOfService()
.interactiveDismissDisabled(!areTermsAccepted)
}
}
}
您可以将修改器应用于工作表视图层次结构中的任何视图,包括工作表的顶级视图,如示例所示,或任何子视图,如 Form
或 Accept Button
。
修饰符对编程解除没有影响,您可以通过更新控制表示的 Binding
或调用环境的 EnvironmentValues/dismiss
操作来调用它。在 macOS 上,禁用弹出框中的交互式解除会使弹出框非瞬态。
可用版本
iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+
相关用法
- Swift Optional init(nilLiteral:)用法及代码示例
- Swift Optional imageScale(_:)用法及代码示例
- Swift Optional symbolVariant(_:)用法及代码示例
- Swift Optional popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代码示例
- Swift Optional mask(alignment:_:)用法及代码示例
- Swift Optional listSectionSeparatorTint(_:edges:)用法及代码示例
- Swift Optional badge(_:)用法及代码示例
- Swift Optional fullScreenCover(isPresented:onDismiss:content:)用法及代码示例
- Swift Optional keyboardType(_:)用法及代码示例
- Swift Optional clipShape(_:style:)用法及代码示例
- Swift Optional preferredColorScheme(_:)用法及代码示例
- Swift Optional background(_:ignoresSafeAreaEdges:)用法及代码示例
- Swift Optional saturation(_:)用法及代码示例
- Swift Optional focusSection()用法及代码示例
- Swift Optional overlay(alignment:content:)用法及代码示例
- Swift Optional colorMultiply(_:)用法及代码示例
- Swift Optional confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)用法及代码示例
- Swift Optional offset(_:)用法及代码示例
- Swift Optional focused(_:equals:)用法及代码示例
- Swift Optional hidden()用法及代码示例
- Swift Optional previewDevice(_:)用法及代码示例
- Swift Optional keyboardShortcut(_:modifiers:localization:)用法及代码示例
- Swift Optional accessibilityAction(named:_:)用法及代码示例
- Swift Optional textSelection(_:)用法及代码示例
- Swift Optional pageCommand(value:in:step:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional interactiveDismissDisabled(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。