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 - 可访问性

可访问性用于使用 SwiftUI 创建可供所有用户(包括残障用户)访问的应用程序,例如,如果某人是盲人,那么他/她可以借助画外音使用您的应用程序。SwiftUI 提供内置的可访问性支持;它允许开发人员添加标签、提示和操作,以便创建一个所有用户都可以轻松访问的界面。

它还提供各种工具,例如 VoiceOver、Switch Control 等和修饰符,这使开发人员可以更轻松地创建甚至残障人士都可以访问的应用程序。

此功能非常易于使用,并增强了所有人的用户体验。开发人员可以借助内置修饰符将它们快速集成到应用程序的界面中。 Apple 的所有平台都支持可访问性,这有助于遵守可访问性标准和法规。

SwiftUI 中的可访问性标签

可访问性标签用于为 UI 组件提供特殊的描述性文本,以便用户可以使用 VoiceOver 轻松地与元素进行通信。它使您的应用更易于访问。

我们可以使用 .accessibilityLabel(_:) 修饰符创建可访问性标签。它为不显示文本(如图标、图像等)的视图提供可访问性标签。

语法

以下是语法 −

accessibilityLabel(_ label: Text)

示例

以下 SwiftUI 程序创建了一个可访问性标签。

import SwiftUI

struct ContentView: View {
   var body: some View {
      Image(systemName: "doc.fill").font(.largeTitle)
         .accessibilityLabel("Document")
   }
}   

SwiftUI 中的可访问性提示

可访问性提示用于提供有关指定 UI 组件或视图的额外信息。当用户使用 VoiceOver 阅读屏幕时,它会向用户提供提示。

当标签无法向用户提供有关组件或视图的所有信息时,它很有用。我们可以使用 accessibilityHint(_:) 修饰符创建提示。此修饰符以提示的形式添加有关元素的更多信息。

语法

以下是语法−

accessibilityHint(_ hint: Text)

示例

以下 SwiftUI 程序创建可访问性提示。

import SwiftUI

struct ContentView: View {
   var body: some View {
      Image(systemName: "doc.fill")
         .font(.largeTitle)
         .accessibilityLabel("Document")
         .accessibilityHint("This file contains all the documents")
   }
}   

SwiftUI 中的可访问性特征

可访问性特征用于向用户提供有关 UI 组件用途的其他信息。它指示给定元素是否具有交互性,或者它是否表示某些指定内容(如按钮、标题等)以及如何处理它。

我们可以使用 .accessibilityAddTraits(_:) 修饰符创建特征,并可以使用 .accessibilityRemoveTraits(_:) 修饰符删除特征。 SwiftUI 支持各种类型的特征,例如 .isButton、.isSelected、.isHeader、.isLink、.isSearchField、.isImage、isModal、isKeyboardKey、isSelected、isSearchField、isToggle、playSound 等。

语法

以下是语法 −

accessibilityAddTraits(_traits: AccessibilityTraits)

示例

以下 SwiftUI 程序创建可访问性特征。

import SwiftUI

struct ContentView: View {
   var body: some View {
      Text("SwiftUI")
         .font(.largeTitle)
         .accessibilityAddTraits([.isButton, .isSelected])
         .accessibilityRemoveTraits(.isSelected)
   }
}  

SwiftUI 中的可访问性值

可访问性值提供了有关给定元素的当前状态或值的附加信息。它对于滑块、切换或步进器等 UI 组件非常有用。它可以轻松地与 VoiceOver 等技术配合使用。

我们可以使用 .accessibilityValue(_:) 修饰符创建值。它允许我们创建一个可以被 VoiceOver 轻松读取的值。

语法

以下是语法 −

accessibilityValue(_ valueDescription: Text)

示例

以下 SwiftUI 程序创建可访问性值。

import SwiftUI

struct ContentView: View {
   @State private var value: Double = 50 // Initial volume level

   var body: some View {
      VStack {
         Slider(value: $value, in: 0...100)
            .accessibilityLabel("Value")
            .accessibilityValue("\(Int(value)) percent")
            .padding()

         Text("Current Value: \(Int(value))%")
            .padding()
      }
   }
}
#Preview {
   ContentView()
}

SwiftUI 中的辅助功能操作

辅助功能操作用于定义由 voiceOver 和其他辅助技术确定的操作,以便残障人士能够熟练地执行指定的操作。

我们可以使用 .accessibilityAction(_:) 修饰符创建操作。此修饰符创建的操作可使用 VoiceOver 轻松读取和执行。这些操作由 VoiceOver 宣布,用户通过选择它们来执行操作。

语法

以下是语法 −

accessibilityAction(
   _ actionKind: AccessibilityActionKind,
   _ handler: @escaping () -> Void
) 

示例

以下 SwiftUI 程序创建了可访问性操作。

import SwiftUI

struct ContentView: View {
   @State private var count = 0

   var body: some View {
      VStack {
         Rectangle()
            .frame(width: 100, height: 100)
            .foregroundStyle(.red)
            .accessibilityLabel("Increment Button")
            .accessibilityAddTraits(.isButton)
            .accessibilityAction(named: "Increment") {
               count += 1
            }
      }
   }
}
#Preview {
   ContentView()
}