4 列表

原文链接: https://developer.apple.com/documentation/swiftui/lists

4 列表

显示结构化的、可滚动的信息列。

概述

使用列表来显示一维的垂直视图集合。

列表是一种复杂的容器类型,当内容多到超出当前显示区域时会自动提供滚动。你既可以为列表中的各行提供单独的视图来构建列表,也可以用 ForEach 遍历一组行。你还可以混用这两种策略,把任意数量的单独视图和 ForEach 结构组合在一起。

使用视图修饰符可以配置列表及其行、页眉、区段和分隔线的外观与行为。例如,你可以为列表应用某种样式、为单行添加轻扫手势,或者让列表支持下拉刷新手势。你还可以使用与 滚动视图 相关的配置来控制列表的隐式滚动行为。

关于设计指导,请参阅 Human Interface Guidelines 中的 列表与表格。

创建列表

  • 在列表中显示数据 — 以符合平台习惯的外观可视化数据集。
  • List — 一种以单列形式呈现数据行的容器,可选择支持选中一个或多个成员。
  • listStyle(_:) — 设置该视图内列表的样式。

逐步展开信息

  • OutlineGroup — 一种根据底层树形结构、可标识的数据集合按需计算视图和展开组的结构。
  • DisclosureGroup — 一种根据展开控件的状态显示或隐藏另一个内容视图的视图。
  • disclosureGroupStyle(_:) — 设置该视图内展开组的样式。

配置列表的布局

配置行

  • listItemTint(_:) — 为列表中的内容设置固定的着色颜色。
  • ListItemTint — 一种可以应用于列表中内容的着色效果配置。

配置页眉

配置分隔线

配置背景

在列表项上显示徽章

配置交互

刷新列表内容

  • refreshable(action:) — 添加一个异步处理器,当用户发起请求(例如下拉刷新)时可以更新视图显示的数据。
  • refresh — 存储在视图环境中的一个刷新动作。
  • RefreshAction — 发起刷新操作的动作。

编辑列表

  • moveDisabled(_:) — 添加一个条件,决定视图的视图层级是否可移动。
  • deleteDisabled(_:) — 添加一个条件,决定视图的视图层级是否可删除。
  • editMode — 表示用户是否可以编辑与该环境关联的视图内容。
  • EditMode — 表示用户是否可以编辑视图内容的模式。
  • EditActions — 视图可以向用户提供的一组针对数据集合的编辑操作。
  • EditableCollectionContent — 一种不透明包装视图,为列表中的某一行添加编辑能力。
  • IndexedIdentifierCollection — 一种集合包装器,可以同时遍历集合的索引和标识符。

配置区段索引