SwiftUI - 自定義列表



在 SwiftUI 中自定義列表非常重要,它可以增強列表的外觀,使您的應用程式看起來更具吸引力和吸引力。SwiftUI 提供了各種修飾符和方法來設定每個部分的樣式,包括列表本身、部分、列表背景、行背景、分隔符、行以及行的內容。

在 SwiftUI 中設定列表樣式

在 SwiftUI 中,我們可以藉助名為 .listStyle(_:) 的預定義修飾符來設定列表的樣式。.listStyle(_:) 修飾符以六種不同的選項自定義列表的外觀,例如 -

  • automatic: 它根據平臺的預設行為設定列表的樣式。

  • grouped: 它指定分組列表的外觀。

  • inset: 它指定內嵌列表的外觀。

  • insetGrouped: 它指定內嵌分組列表的外觀。

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

  • sidebar: 它指定側邊欄列表的外觀。它在標題部分顯示一個顯示指示器,用於摺疊和展開部分。

語法

以下是語法 -

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

示例 1

以下 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(.inset)
   }
}
#Preview {
   ContentView()
}

輸出

Customize List

示例 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()
}

輸出

Customize List

在 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()
}

輸出

Customize List
廣告

© . All rights reserved.