我可以将所有视图包装在列表中
List {
// contents
}
但这似乎是垂直滚动。如何使其水平?
答案 0 :(得分:7)
从iOS 14 beta1
和XCode 12 beta1
开始,您可以将LazyHStack
包裹在ScrollView
中,以创建水平的项目懒惰列表,即,每个项目只能是按需加载:
ScrollView(.horizontal) {
LazyHStack {
ForEach(0...50, id: \.self) { index in
Text(String(index))
.onAppear {
print(index)
}
}
}
}
答案 1 :(得分:3)
要制作水平可滚动内容,可以将HStack
包裹在ScrollView
内:
ScrollView {
HStack {
ForEach(0..<10) { i in
Text("Item \(i)")
Divider()
}
}
}
.frame(height: 40)
答案 2 :(得分:1)
您需要将.horizontal
属性添加到滚动视图。否则它将不会滚动。
ScrollView (.horizontal, showsIndicators: false) {
HStack {
//contents
}
}.frame(height: 100)
答案 3 :(得分:1)
您可以使用.horizontal属性并使用自定义元素。对我来说,我使用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)
}
}
}
答案 4 :(得分:0)
我正在使用Swift 5版本
SimpleDateFormat