SwiftUI 教程

SwiftUI - 主页 SwiftUI - 概览 SwiftUI 与 UIkit

SwiftUI 环境

SwiftUI - 环境设置 SwiftUI - 基本组件 SwiftUI - 构建第一个应用程序

SwiftUI 视图

SwiftUI - 视图 SwiftUI - 自定义文本视图 SwiftUI - 自定义图像视图 SwiftUI - 堆栈

SwiftUI 绘制形状

SwiftUI - 形状 SwiftUI - 绘制线条 SwiftUI - 绘制矩形 SwiftUI - 绘制圆角矩形 SwiftUI - 绘制三角形 SwiftUI - 绘制圆形 SwiftUI - 绘制星形 SwiftUI - 绘制多边形 SwiftUI - 绘制饼图 SwiftUI - 使用内置形状

SwiftUI - 文本

SwiftUI - 文本视图 SwiftUI - 文本输入和输出

SwiftUI - 颜色

SwiftUI - 颜色 SwiftUI - 颜色选择器 SwiftUI - 渐变 SwiftUI - 调整颜色

SwiftUI - 效果

SwiftUI - 效果 SwiftUI - 混合效果 SwiftUI - BLur 效果 SwiftUI - 阴影效果 SwiftUI - 悬停效果

SwiftUI - 动画

SwiftUI - 动画 SwiftUI - 创建动画 SwiftUI - 创建显式动画 SwiftUI - 多个动画 SwiftUI - 过渡 SwiftUI - 不对称过渡 SwiftUI - 自定义过渡

SwiftUI - 图像

SwiftUI - 图像 SwiftUI - 图像作为背景 SwiftUI - 旋转图像 SwiftUI - 媒体

SwiftUI - 视图布局

SwiftUI - 视图布局 SwiftUI - 视图大小 SwiftUI - 视图间距 SwiftUI - 视图填充

SwiftUI - UI 控件

SwiftUI - UI 控件 SwiftUI - 按钮 SwiftUI - 复选框 SwiftUI - 菜单栏 SwiftUI - 工具栏 SwiftUI - 搜索栏 SwiftUI - 文本字段 SwiftUI - 滑块 SwiftUI - 切换 SwiftUI - 选择器 SwiftUI - 菜单

SwiftUI - 列表 &表格

SwiftUI - 列表 SwiftUI - 静态列表 SwiftUI - 动态列表 SwiftUI - 自定义列表 SwiftUI - 表格

SwiftUI - 表单

SwiftUI - 表单 SwiftUI - 在部分中拆分表单

SwiftUI - 事件处理

SwiftUI - 事件处理 SwiftUI - 手势 SwiftUI - 剪贴板 SwiftUI - 拖放 SwiftUI - 焦点 SwiftUI - 警报

SwiftUI - 杂项

SwiftUI - 容器 SwiftUI - 导航 SwiftUI - 通知 SwiftUI - 跨平台 UI SwiftUI - 数据 SwiftUI - 可访问性

SwiftUI - 框架集成

SwiftUI - 框架集成 SwiftUI - 与 UIKit 交互 SwiftUI - 创建 macOS 应用

SwiftUI 有用资源

SwiftUI - 有用资源 SwiftUI - 讨论


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()
}
输出 List

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()
}
输出 List

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()
}
输出 List

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()
}
输出 List

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()
}
输出 List

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()
}
输出 List