外观风格
处理用户输入
在 Landmarks app
中,用户可以标记他们喜欢的地点,并在列表中过滤出来。要实现这个功能,我们要先在列表中添加一个开关,这样用户可以只看到他们收藏的内容。另外还会添加一个星形按钮,用户可以点击该按钮来收藏地标。

请先下载本节资源文件,并按照下面的步骤进行。
- 预计完成时间:20 分钟
- 初始项目文件:下载
1. 标记用户收藏的地标
首先,通过优化列表来清晰地给用户显示他们的收藏。给每个被收藏地标的 LandmarkRow
添加一颗星。

第 1 步
打开项目,在项目导航器中选择 Landmark.swift
文件。

第 2 步
给 Landmark
结构体添加一个 isFavorite
属性。
因为 Landmark 符合 Codable 协议,所以你可以通过创建同名属性,来读取 landmarkData.json 文件中对应属性的值
第 3 步
打开 LandmarkRow.swift
文件。

第 4 步
在 Spacer
后面,新增 if
语句,判断当前地标为用户收藏的地标时,添加一个星形图标。
技巧
在 SwiftUI 代码块中,可以使用 if
语句来控制视图的显示。

第 5 步
因为系统图标是矢量的,所以可以用 foregroundColor(_:)
修饰符来改变其颜色。
只要一个地标的 isFavorite
属性为真,就会显示星形图标。你将在本教程的后面看到如何修改该属性。