B79170bdff7eaada95c45f57bd3fda63
SwiftUI List 实现选中内容高亮显示Select 并获取选择内容(教程含源码)

实战需求

SwiftUI List 实现选中内容高亮显示Select ?
SwiftUI List 组件非常方便快捷地显示各类数据,但是目前原生没有自带在选择其中一个时为单元格着色。因为不仅是开箱即用的,所以有几种解决问题的方法。这是我的解决方案,它还可以解决以下事实:选择单元格并不像您希望的那么简单。

本文价值与收获

看完本文后,您将能够作出下面的界面

截屏2020-11-21 上午8.53.40.png

截屏2020-11-21 上午8.53.40.png

看完本文您将掌握的技能


基础知识

List

一个容器,用于显示排列在单列中的数据行。

struct List<SelectionValue, Content> where SelectionValue : Hashable, Content : View

主题

建立清单

1、init(content: () -> Content)

创建具有给定内容的列表。
是且符合时可用。SelectionValueNeverContentView

2、init(Data, id: KeyPath, rowContent: (Data.Element) -> RowContent)

创建一个列表,该列表基于到基础数据标识符的键路径来标识其行。
是且符合时可用。SelectionValueNeverContentView

3、init(Data, id: KeyPath, selection: Binding>?, rowContent: (Data.Element) -> RowContent)

创建一个列表,该列表基于到基础数据标识符的键路径来标识其行,可以选择允许用户选择多个行。
符合和符合时可用。SelectionValueHashableContentView

4、init(Data, id: KeyPath, selection: Binding?, rowContent: (Data.Element) -> RowContent)

创建一个列表,该列表基于到基础数据标识符的键路径来标识其行,可以选择允许用户选择单个行。
符合和符合时可用。SelectionValueHashableContentView

5、init(Data, rowContent: (Data.Element) -> RowContent)

创建一个列表,该列表根据可识别数据的基础集合按需计算其行。
是且符合时可用。SelectionValueNeverContentView

6、init(Range, rowContent: (Int) -> RowContent)

创建一个列表,该列表在恒定范围内按需计算其视图。
是且符合时可用。SelectionValueNeverContentView

7、init(Range, selection: Binding>?, rowContent: (Int) -> RowContent)

创建一个列表,该列表在恒定范围内按需计算其视图。
符合和符合时可用。SelectionValueHashableContentView

8、init(Data, selection: Binding>?, rowContent: (Data.Element) -> RowContent)

创建一个列表,该列表根据可识别数据的基础集合按需计算其行,可以选择允许用户选择多个行。
符合和符合时可用。SelectionValueHashableContentView

9、init(Range, selection: Binding?, rowContent: (Int) -> RowContent)

创建一个列表,该列表在恒定范围内按需计算其视图。
符合和符合时可用。SelectionValueHashableContentView

10、init(Data, selection: Binding?, rowContent: (Data.Element) -> RowContent)

创建一个列表,该列表根据可识别数据的基础集合按需计算其行,可以选择允许用户选择单个行。
符合和符合时可用。SelectionValueHashableContentView

11、init(Data, children: KeyPath, rowContent: (Data.Element) -> RowContent)

创建一个层次结构列表,该层次结构列表根据可识别数据的基础集合按需计算其行。
是且符合时可用。SelectionValueNeverContentView

12、init(Data, id: KeyPath, children: KeyPath, rowContent: (Data.Element) -> RowContent)

创建一个层次结构列表,该层次结构列表根据指向基础数据标识符的键路径来标识其行。
是且符合时可用。SelectionValueNeverContentView

13、init(selection: Binding?, content: () -> Content)
top Created with Sketch.