SwiftUI - 列表
在 SwiftUI 中,列表视图是一个容器,它将大型数据集合存储在单个可滚动列中。它通常用于存储分层、动态和静态数据。它是设计应用程序用户界面时最重要和最有用的组件。因此,在本章中,我们将讨论如何创建列表、列表类型等。
在 SwiftUI 中创建列表
在 SwiftUI 中,我们可以借助列表视图创建列表。列表视图将所有数据按行排列,然后在垂直可滚动列中显示这些行。我们可以在列表中存储任意数量的数据,并且单个 UI 可以包含多个列表。
语法以下是语法−
List{ Text("Item 1") Text("Item 2") Text("Item 3") }示例
以下 SwiftUI 程序创建一个列表。
import SwiftUI struct ContentView: View { var body: some View { VStack{ Text("Contacts") List{ Text("Mohan") Text("Sohan") Text("Monika") Text("Mona") Text("Sona") } } } } #Preview { ContentView() }输出

SwiftUI 中的列表类型
在 SwiftUI 中,我们可以使用 List View 创建三种类型的列表,如下所示−
静态列表
动态列表
分层列表
SwiftUI 中的静态列表
静态列表是行数据固定的列表,这意味着我们无法更改行的数据。我们可以使用 List 视图创建静态列表。默认情况下,静态列表使用 InsetGrouped 样式来设置列表的外观,但我们可以使用 listStyle() 修饰符来更改它。
示例以下 SwiftUI 程序创建一个静态列表。
import SwiftUI struct ContentView: View { var body: some View { VStack{ Text("Settings") List{ Text("Wi-Fi") Text("Mobile Network") Text("Bluetooth") Text("Connection and sharing") Text("Wallpaper & Style") Text("Home Screen") Text("Display and Brightness") } } } } #Preview { ContentView() }输出

SwiftUI 中的动态列表
动态列表是可以更改数据的列表。或者我们可以说,当我们处理数组、集合等数据可能随时间变化的集合时,会使用动态列表。
示例以下 SwiftUI 程序创建一个动态列表。
import SwiftUI struct ContentView: View { // Array let elements = ["Sohan", "Mohan", "Monika", "Sona", "Mona", "Seemran"] var body: some View { VStack{ // Dynamic List Text("Contacts") List(elements, id:\.self){ x in Text(x) } } } } #Preview { ContentView() }输出

SwiftUI 中的分层列表
分层列表是一种特殊类型的列表,我们可以在其中以嵌套结构显示数据,此处项目将显示在展开或折叠的列表中。当我们处理具有父子关系的数据时,这种类型的列表很有用。我们可以使用列表视图以及 DisclousreGroup 或 OutlineGroup 创建分层列表。
DisclousreGroup 在给定列表内创建一个可扩展和可折叠的部分。每当我们单击该部分时,它始终可见,而 OutlineGroup 用于显示已经处于层次结构中的数据,它会自动处理元素的展开和折叠。它通常适用于符合 Identifiable 协议的数据。
示例以下 SwiftUI 程序创建一个分层列表 −
import SwiftUI struct ContentView: View { var body: some View { VStack{ Text("Contacts") List { DisclosureGroup("Studets") { Text("Mohan") Text("Sohan") Text("Meena") } DisclosureGroup("Teachers") { Text("Sonika") Text("Preeti") Text("Mina") } } } } } #Preview { ContentView() }输出

SwiftUI 中的列表部分
在 SwiftIUI 中,我们还可以将列表划分为相关项目或数据的部分。或者我们可以说,部分用于将列表划分为相似类型数据的组。它增强了列表的可读性,也使列表易于浏览。单个列表可以包含多个部分。
语法以下是语法 −
List{ Section{ // data } Section{ } }示例
以下 SwiftUI 程序创建一个包含部分的列表 −
import SwiftUI struct ContentView: View { var body: some View { VStack{ Text("Settings") List{ Section{ Text("Wi-Fi") Text("Mobile Network") Text("Bluetooth") Text("Connection and sharing") } Section{ Text("Wallpaper & Style") Text("Home Screen") Text("Display and Brightness") } } } } } #Preview { ContentView() }输出

SwiftUI 中带有页眉和页脚的部分
我们还可以为列表提供页眉和页脚。页眉用于为部分提供标题,告诉用户以下部分包含哪种数据,它位于部分的顶部。
而部分的页脚提供了有关相应部分的一些额外信息。它位于部分的底部
语法以下是语法 −
List{ Section(header:Text("")){ // data } Section{ } }示例
以下 SwiftUI 程序创建一个包含带有页眉和页脚的部分的列表。
import SwiftUI struct ContentView: View { var body: some View { VStack{ Text("Settings") List{ Section{ Text("Wi-Fi") Text("Mobile Network") Text("Bluetooth") Text("Connection and sharing") }header: { Text("Network") }footer: { Text("All the network related Setting") } Section{ Text("Wallpaper & Style") Text("Home Screen") Text("Display and Brightness") }header: { Text("Display Setting") } } } } } #Preview { ContentView() }输出
