SwiftUI 教程

SwiftUI 主页 SwiftUI 概览 SwiftUI 与 UIkit

SwiftUI 环境

SwiftUI 安装和环境配置 SwiftUI 基本组件 SwiftUI 构建第一个应用程序

SwiftUI 视图

SwiftUI 视图 SwiftUI 自定义文本视图 SwiftUI 自定义图像视图 SwiftUI 堆栈

SwiftUI 绘制形状

SwiftUI 形状 SwiftUI 绘制线条 SwiftUI 绘制矩形 SwiftUI 绘制圆角矩形 SwiftUI 绘制三角形 SwiftUI 绘制圆形 SwiftUI 绘制星形 SwiftUI 绘制多边形 SwiftUI 绘制饼图 SwiftUI 使用内置形状

SwiftUI 文本

SwiftUI 文本视图 SwiftUI 文本输入和输出

SwiftUI 颜色

SwiftUI 颜色 SwiftUI 颜色选择器 SwiftUI 渐变 SwiftUI 调整颜色

SwiftUI 效果

SwiftUI 效果 SwiftUI 混合效果 SwiftUI BLur 效果 SwiftUI 阴影效果 SwiftUI 悬停效果

SwiftUI 动画

SwiftUI 动画 SwiftUI 创建动画 SwiftUI 创建显式动画 SwiftUI 多个动画 SwiftUI 过渡 SwiftUI 不对称过渡 SwiftUI 自定义过渡

SwiftUI 图像

SwiftUI 图像 SwiftUI 图像作为背景 SwiftUI 旋转图像 SwiftUI 媒体

SwiftUI 视图布局

SwiftUI 视图布局 SwiftUI 视图大小 SwiftUI 视图间距 SwiftUI 视图填充

SwiftUI UI 控件

SwiftUI UI 控件 SwiftUI 按钮 SwiftUI 复选框 SwiftUI 菜单栏 SwiftUI 工具栏 SwiftUI 搜索栏 SwiftUI 文本字段 SwiftUI 滑块 SwiftUI 切换 SwiftUI 选择器 SwiftUI 菜单

SwiftUI 列表 &表格

SwiftUI 列表 SwiftUI 静态列表 SwiftUI 动态列表 SwiftUI 自定义列表 SwiftUI 表格

SwiftUI 表单

SwiftUI 表单 SwiftUI 在部分中拆分表单

SwiftUI 事件处理

SwiftUI 事件处理 SwiftUI 手势 SwiftUI 剪贴板 SwiftUI 拖放 SwiftUI 焦点 SwiftUI 警报

SwiftUI 杂项

SwiftUI 容器 SwiftUI 导航 SwiftUI 通知 SwiftUI 跨平台 UI SwiftUI 数据 SwiftUI 可访问性

SwiftUI 框架集成

SwiftUI 框架集成 SwiftUI 与 UIKit 交互 SwiftUI 创建 macOS 应用

SwiftUI 有用资源

SwiftUI 有用资源 SwiftUI 讨论


SwiftUI - 复选框

复选框是一种 UI 组件,它通过提供一个框来接收用户的输入,用户可以在该框中选择或取消选择、选中或取消选中某个选项。我们可以从给定的列表中同时选择单个或多个复选框。它通常用于表单、设置以及选择条款和条件、权限等。

SwiftUI 不提供内置的复选框视图。因此,我们必须创建一个可以从用户那里获取值的自定义复选框。

在 SwiftUI 中创建复选框

我们可以在切换 UI 控件的帮助下在 SwiftUI 中创建复选框。这是创建复选框最简单、最快捷的方法。在这里,我们创建一个自定义样式,将切换样式设置为复选框。我们还可以在整个项目中多次重复使用此样式。因此,要创建自定义复选框,请按照以下步骤 −

步骤 1:打开项目

在 XCode 中打开新项目或现有项目。

步骤 2:导入 SwiftUI

在项目中导入 SwiftUI。

import SwiftUI

步骤 3:定义状态变量

使用 @State 属性定义状态变量来处理复选框布尔值的变化。如果值被选中,则表示 true,而如果值为 false,则表示复选框未选中。

@State private var toggleValue1 = false

步骤 4:创建 Toggle View

创建一个可轻松应用自定义样式的 Toggle View,将 Toggle View 转换为复选框。

Toggle("TransGender", isOn: $toggleValue3)
   .toggleStyle(checkBoxStyle())
   .padding(.leading, 69)

步骤 5:自定义样式

定义符合 ToggleStyle 的自定义样式。它将 Toggle 视图的外观更改为复选框。

struct checkBoxStyle: ToggleStyle{
   func makeBody(configuration: Self.Configuration) -> some View {
      HStack{
         Image(systemName: configuration.isOn ? "checkmark.square" : "square")
            .resizable()
            .frame(width:26, height:26)
            .onTapGesture {configuration.isOn.toggle()
            }
         configuration.label
      }
   }
}

第 6 步:自定义复选框

我们还可以利用预定义的修饰符(如 .background()、.foregroundStyle()、.font()、bold() 等)来设置复选框的外观样式(例如字体颜色、字体样式、填充等)。

Toggle("Female", isOn: $toggleValue2)
   .toggleStyle(checkBoxStyle())
   .padding(.leading, 20)
   .foregroundStyle(.green)

示例

以下 SwiftUI 程序创建一个复选框。

import SwiftUI

struct ContentView: View {
   @State private var toggleValue1 = false
   @State private var toggleValue2 = false
   @State private var toggleValue3 = false
   
   var body: some View {
      VStack {
         Text("Select your gender:").font(.headline)
         Toggle("Male", isOn: $toggleValue1)
         .toggleStyle(checkBoxStyle())
         .foregroundStyle(.red)
         Toggle("Female", isOn: $toggleValue2)
         .toggleStyle(checkBoxStyle())
         .padding(.leading, 20)
         .foregroundStyle(.green)
         Toggle("TransGender", isOn: $toggleValue3)
         .toggleStyle(checkBoxStyle())
         .padding(.leading, 69)
      }
   }
}
// 复选框的自定义样式
struct checkBoxStyle: ToggleStyle{
   func makeBody(configuration: Self.Configuration) -> some View {
      HStack{
         Image(systemName: configuration.isOn ? "checkmark.square" : "square")
            .resizable()
            .frame(width:26, height:26)
            .onTapGesture {configuration.isOn.toggle()
            }configuration.label
      }
   }
}

#Preview {
   ContentView()
}

输出

Checkbox