簡體   English   中英

如何在 SwiftUI 中制作水平列表?

[英]How to make a Horizontal List in SwiftUI?

我可以將所有視圖都包含在一個列表中

List {
   // contents
}

但這似乎是垂直滾動。 我如何使它水平?

您需要將.horizontal屬性添加到滾動視圖。 否則它不會滾動。

ScrollView (.horizontal, showsIndicators: false) {
     HStack {
         //contents
     }
}.frame(height: 100)

iOS 14 beta1XCode 12 beta1您將能夠將LazyHStack包裝在ScrollView以創建項目的水平惰性列表,即,每個項目只會按需加載:

ScrollView(.horizontal) {
            LazyHStack {
                ForEach(0...50, id: \.self) { index in
                    Text(String(index))
                        .onAppear {
                            print(index)
                        }
                }
            }
        }

要制作水平滾動內容,您可以將HStack包裝在ScrollView

ScrollView {
  HStack {
    ForEach(0..<10) { i in
      Text("Item \(i)")
      Divider()
    }
  }
}
.frame(height: 40)

您可以使用 .horizo​​ntal 屬性並使用自定義元素。 對我來說,我使用 cusomt CircleView

  var body: some View {
        VStack{
            Divider()
            ScrollView(.horizontal){
                HStack(spacing:10){
                    ForEach(0..<10){
                        index in
                        CircleView(label: "\(index)")
                    }
                }.padding()
            }.frame(height:100)
            Divider()
            Spacer()
        }
        
    }
}

    //struct CircleView:View
    @State var label:String
    var body:some View {
        ZStack{
            Circle()
                .fill(Color.yellow)
                .frame(width: 70, height: 70)
            Text(label)
        }
    }
}

我正在使用 Swift 版本 5

List(items) { item in
    Text("\(item.name)")
}.scrollOptions(direction: .horizontal, showsIndicators: true)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM