日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

概覽

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

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

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

注釋

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

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

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

與 stack 中包含的視圖一樣,在通過 ForEach (英文) 迭代時(shí),每個(gè) Section (英文) 都必須經(jīng)過唯一標(biāo)識(shí)。在此示例中,ColorData 實(shí)例代表各個(gè)部分,ShadeData 實(shí)例代表一個(gè)部分中每種顏色的色度。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 為每個(gè)原色設(shè)置了一個(gè)包含 ColorData 實(shí)例的數(shù)組。LazyVStack (英文) 迭代顏色數(shù)據(jù)的數(shù)組以創(chuàng)建各個(gè)部分,然后迭代 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 (英文) 視圖對(duì)數(shù)據(jù)進(jìn)行分組,并使用 headerfooter 屬性傳入頁眉或頁腳視圖。此示例實(shí)施了一個(gè) SectionHeaderView 作為頁眉視圖,其中包含一個(gè)半透明的 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ù)視圖的更多信息,請(qǐng)參閱“創(chuàng)建高性能的可滾動(dòng) Stack”。

使重要信息保持可見

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

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

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

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


名稱欄目:創(chuàng)新互聯(lián)IOS教程:使用惰性Stack視圖對(duì)數(shù)據(jù)進(jìn)行分組
本文鏈接:http://www.5511xx.com/article/cddochg.html