日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)IOS教程:使用惰性Stack視圖對數(shù)據(jù)進(jìn)行分組

概覽

LazyHStack (英文) 和 LazyVStack (英文) 視圖都可以顯示整理為多個邏輯部分的視圖組,從而分別將其子項排列成水平生長和垂直生長的直線。之所以稱這些 stack 為“惰性”,是因為 stack 視圖僅在需要在屏幕上渲染項目時才會創(chuàng)建項目。與 stack 視圖一樣,惰性 stack 不包括對滾動的任何固有支持,并且你應(yīng)將惰性 stack 視圖包裝在 ScrollView (英文) 容器中。

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計,商水網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:商水等地區(qū)。商水做網(wǎng)站價格咨詢:18980820575

若要對惰性 stack 視圖中的內(nèi)容或數(shù)據(jù)進(jìn)行分組,請使用 Section (英文) 實例作為已分組視圖集合的容器。Section (英文) 視圖本身沒有任何直觀的表示形式,但是可以包含頁眉和頁腳視圖,這些視圖可隨著 stack 的內(nèi)容進(jìn)行滾動,或者你可以將它們固定在 ScrollView (英文) 的頂部或底部。

注釋

使用 Section (英文) 視圖可以在 stack 視圖或惰性 grid、List (英文)、CommandMenu (英文)、Form (英文) 和多個其他容器類型中獲得平臺適用的分組。

本文中的代碼示例構(gòu)建了一個用戶界面來直觀地呈現(xiàn)三原色的不同色度。Stack 中的每個部分都代表一種原色,其中包含五個子視圖,每個子視圖都顯示該顏色的一個不同變體。

準(zhǔn)備數(shù)據(jù)

與 stack 中包含的視圖一樣,在通過 ForEach (英文) 迭代時,每個 Section (英文) 都必須經(jīng)過唯一標(biāo)識。在此示例中,ColorData 實例代表各個部分,ShadeData 實例代表一個部分中每種顏色的色度。ColorDataShadeData 均遵從 Identifiable (英文) 協(xié)議。

 struct ColorData: Identifiable {  let id = UUID()  let name: String  let color: Color  let variations: [ShadeData]    struct ShadeData: Identifiable {  let id = UUID()  var brightness: Double  }    init(color: Color, name: String) {  self.name = name  self.color = color  self.variations = stride(from: 0.0, to: 0.5, by: 0.1)  .map { ShadeData(brightness: $0) }  } }

顯示帶頁眉和頁腳的部分

下面的 ColorSelectionView 為每個原色設(shè)置了一個包含 ColorData 實例的數(shù)組。LazyVStack (英文) 迭代顏色數(shù)據(jù)的數(shù)組以創(chuàng)建各個部分,然后迭代 variations 以根據(jù)色度創(chuàng)建視圖。

 struct ColorSelectionView: View {  let sections = [  ColorData(color: .red, name: "Reds"),  ColorData(color: .green, name: "Greens"),  ColorData(color: .blue, name: "Blues")  ]    var body: some View {  ScrollView {  LazyVStack(spacing: 1) {  ForEach(sections) { section in  Section(header: SectionHeaderView(colorData: section)) {  ForEach(section.variations) { variation in  section.color  .brightness(variation.brightness)  .frame(height: 20)  }  }  }  }  }  } }

使用 Section (英文) 視圖對數(shù)據(jù)進(jìn)行分組,并使用 headerfooter 屬性傳入頁眉或頁腳視圖。此示例實施了一個 SectionHeaderView 作為頁眉視圖,其中包含一個半透明的 stack 視圖以及 Text (英文) 標(biāo)簽中該部分顏色的名稱。

 struct SectionHeaderView: View {  var colorData: ColorData    var body: some View {  HStack {  Text(colorData.name)  .font(.headline)  .foregroundColor(colorData.color)  Spacer()  }  .padding()  .background(Color.primary  .colorInvert()  .opacity(0.75))  } }

有關(guān)使用 ForEach (英文) 在 stack 中重復(fù)視圖的更多信息,請參閱“創(chuàng)建高性能的可滾動 Stack”。

使重要信息保持可見

默認(rèn)情況下,一個部分的頁眉和頁腳視圖將與該部分的內(nèi)容同步滾動。如果你想要讓頁眉和頁腳視圖始終保持可見 (無論相關(guān)部分的頂部或底部是否可見),可以為惰性 stack 視圖的 pinnedViews 屬性指定一組 PinnedScrollableViews (英文)。

 LazyVStack(spacing: 1, pinnedViews: [.sectionHeaders]) {  // ... }

LazyVStack (英文) 容器中,頁眉附加到頂部,頁腳附加到底部。在 LazyHStack (英文) 容器中,頁眉附加到前緣,頁腳附加到后緣。

通過此更改,在用戶開始滾動時,相關(guān)部分的頁眉會固定到視圖頂部。


本文名稱:創(chuàng)新互聯(lián)IOS教程:使用惰性Stack視圖對數(shù)據(jù)進(jìn)行分組
分享路徑:http://www.dlmjj.cn/article/cddochg.html