SwiftUI创建操作表以供用户选择的 ActionSheet 视图

19 min read

SwiftUI 中的 ActionSheet 视图可用于向用户显示一组操作选项,以供选择。它可以用来在用户与应用程序进行交互时显示一组操作。下面是一个简单的示例:

struct ContentView: View {
    @State var showActionSheet = false
    @State var actionSheetMessage = ""
    
    var body: some View {
        Button(action: {
            self.showActionSheet = true
        }) {
            Text("Show Action Sheet")
        }
        .actionSheet(isPresented: $showActionSheet) {
            ActionSheet(title: Text("Options"), message: Text(actionSheetMessage), buttons: [
                .default(Text("Option 1")) {
                    self.actionSheetMessage = "Option 1 was selected"
                },
                .default(Text("Option 2")) {
                    self.actionSheetMessage = "Option 2 was selected"
                },
                .default(Text("Option 3")) {
                    self.actionSheetMessage = "Option 3 was selected"
                },
                .cancel()
            ])
        }
    }
}

在此示例中,我们创建了一个名为 showActionSheet 的布尔状态变量,以控制是否显示操作表视图。当用户点击按钮时,我们将 showActionSheet 设置为 true,这将触发操作表视图的显示。展示的操作表将显示一个标题“Options”和三个选项“Option 1”、“Option 2”和“Option 3”,以供用户选择。我们还提供了一个 message 参数,以用于在用户选择选项时显示消息。选项按钮通过闭包处理程序指定其操作,并将消息字符串设置为选项被选择时显示的消息。最后,我们提供了取消按钮,以关闭操作表视图。

注意:必须将操作表性质(isPresented)读作绑定变量。这是因为操作表是一个单独的视图,不能像其他视图一样直接添加到视图层次结构中。它必须通过操作的旗标来呈现并在视图上方弹出。

这只是一个简单的示例,ActionSheet还有其他参数和样式。它可以用来实现诸如弹出式菜单、确认对话框和警告框等功能。