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 中设置列​​表样式

在 SwiftUI 中,我们可以借助名为 .listStyle(_:) 的预定义修饰符来设置列表样式。 .listStyle(_:) 修饰符可通过六种不同选项自定义列表的外观,例如 −

  • automatic: 根据平台的默认行为设置列表样式。

  • grouped: 指定分组列表的外观。

  • inset: 指定插入列表的外观。

  • insetGrouped: 指定插入分组列表的外观。

  • plain: 指定普通列表的外观。

  • sidebar: 指定侧边栏列表的外观。它在标题部分显示一个公开指示器,用于折叠和展开部分。

语法

以下是语法 −

List{
    // items
}.listStyle(.automatic)

示例 1

以下 SwiftUI 程序用于使用 inset 设置列表样式。

import SwiftUI

struct ContentView: View {
   var body: some View {
      List{
         Section{
            Text("About Device")
            Text("Users and Account")
            Text("Google")
            Text("Help and Feedback")
         }header: {
            Text("About")
         }
         Section{
            Text("Battery")
            Text("Location")
            Text("Apps")
         }header: {
            Text("Apps")
         }
      }.listStyle(.inset)
   }
}
#Preview {
   ContentView()
}

输出

自定义列表

示例 2

以下 SwiftUI 程序用于使用分组设置列表样式。

import SwiftUI

struct ContentView: View {
   var body: some View {
      List{
         Section{
            Text("About Device")
            Text("Users and Account")
            Text("Google")
            Text("Help and Feedback")
         }header: {
            Text("About")
         }
         Section{
            Text("Battery")
            Text("Location")
            Text("Apps")
         }header: {
            Text("Apps")
         }
      }.listStyle(.grouped)
   }
}
#Preview {
   ContentView()
}

输出

自定义列表

在 SwiftUI 中自定义列表中的行

我们还可以借助以下修饰符 − 自定义列表的行和行内容

  • background(): 用于更改行的背景。

  • padding(): 用于调整行内的间距。

  • foregroundStyle(): 用于设置行内容的样式。

  • font(): 用于设置行的字体样式。

  • listRowSeparator(): 它设置与给定行关联的分隔符的显示模式。分隔符位于两行之间,或者我们可以说它们用于分隔行。

  • listRowSeparatorTint(): 它用于指定行分隔符的颜色。

  • listSectionSeparator(): 它用于指示部分分隔符是隐藏还是可见。节分隔符用于分隔节。

  • scrollIndicators():用于隐藏或显示滚动指示器。

  • listRowSpacing():用于调整两行之间的垂直间距。

  • listSectionSpacing:用于调整两个节之间的空间。

示例

以下 SwiftUI 程序用于自定义列表的行。

import SwiftUI

struct ContentView: View {
   var body: some View {
      List{
         Section{
            Text("About Device")
            Text("Users and Account")
            Text("Google")
            Text("Help and Feedback")
         }header: {
            Text("About")
         }
         Section{
            Text("Battery")
            Text("Location")
            Text("Apps")
         }header: {
            Text("Apps")
         }
      }.listStyle(.grouped)
         .lineSpacing(15.2)
         .listRowSpacing(3)
         .listRowSeparator(.hidden)
   }
}
#Preview {
   ContentView()
}

输出

自定义列表