048045bfa0719289bd702f84fb79db61
SwiftUI 中级组件之按钮组只能选中一个(中文教程含源码)

实战需求

SwiftUI 中级组件之按钮组只能选中一个

本文价值与收获

看完本文后,您将能够作出下面的界面

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述


基础知识

Button

在触发时执行操作的控件。

struct Button<Label> where Label : View

总览

您可以通过提供操作和标签来创建按钮。操作是方法或闭包属性,当用户单击或点击按钮时,该操作会执行某些操作。标签是描述按钮操作的视图,例如,通过显示诸如“取消”之类的文本或诸如“后退箭头”之类的图标来描述。

Button(action: signIn) {
    Text("Sign In")
}

对于纯文本标签的常见情况,可以使用便捷初始化程序,该初始化程序将标题字符串(或本地化的字符串键)作为其第一个参数,而不是尾随闭包:

Button("Sign In", action: signIn)

触发按钮的方法因平台而异:

在iOS和watchOS中,用户通过点击来触发标准按钮。

在macOS中,用户通过单击触发标准按钮。

在tvOS中,用户可以通过在按下Siri Remote之类的外部遥控器上同时按“选择”按钮来触发标准按钮。

向容器添加按钮

将按钮用于任何在按下时触发操作的用户界面元素。按钮会自动调整其视觉样式,以匹配这些不同容器和上下文中的预期样式。例如,要创建一个列表单元格,当用户选择该单元格时会触发操作,请在列表内容中添加一个按钮。例如:

// A list of items, where the last row, when triggered,
// opens a UI for adding a new item.
List {
    ForEach(items) { item in
        Text(item.title)
    }
    Button("Add Item", action: addItem)
}

同样,要创建触发动作的上下文菜单项,请在菜单内容中添加一个按钮:
```
.contextMenu {
Button("Cut", action: cut)

top Created with Sketch.