外观风格
动态化列表
相比于给 List
指定单个元素,我们还可以直接从集合中生成行视图。
通过传递一个数据集合和一个给每个元素提供视图的闭包来让 List 显示集合的元素。 List 通过传递的闭包来把每个集合中的元素转换成子视图。

第 1 步
删除两个静态地标行视图,而把模型数据的 landmarks
数组传递给 List 初始化方法。
List 使用 identifiable
的数据,我们可以使用以下两个方法之一来让数据变成 identifiable
:
- 使用
key path
属性来唯一标识每个元素; - 让数据类型遵循
Identifiable
协议。
第 2 步
通过从闭包中返回一个 LandmarkRow
来完成动态生成的 List
。
这会给 landmarkData
数组中的每一个元素创建一个 LandmarkRow
。

接下来,你将通过为地标类型添加 Identifiable
协议来简化列表代码。
第 3 步
打开 Landmark.swift
文件并声明符合 Identifiable
协议。
当 Landmark
类型声明了 Identifiable
协议所需要的 id
属性后;你只需要在读取数据时添加一个属性来解码。
第 4 步
打开 LandmarkList.swift
并删除 id
参数。
从现在开始,就可以直接使用 Landmark
元素的集合了。
