我正在尝试在列表中设置一个限制;我希望它仅显示5行。
这是我的代码:
struct ContentView: View {
let allnum = ["1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10"]
var body: some View {
List {
ForEach(self.allnum , id: \.self) { num in
Text("\(num)")
}
}
}
}
当我将List
更改为List(0 ..< 5) { _ in
时,看到5行,但数组中的所有元素都包含在内。
任何建议
谢谢!
答案 0 :(得分:2)
n
个元素(这里为5
)作为数据源。List
不需要ForEach
。因此,body
的最小重构工作代码为:
var body: some View {
List(allnum.prefix(5), id: \.self) { Text($0) }
}
如果您在某处实现此扩展:
extension String: Identifiable { public var id: String { self } }
列表代码将更小,更简单:
List(allnum.prefix(5)) { Text($0) }
答案 1 :(得分:0)
我用从0到<5的计数进行了ForEach,并使用该数字对数组进行了索引。在生产代码中,您可能希望进行测试以确保您不尝试使用超出数组末尾的索引。
totalPriceLabel.text = "\(price)"
答案 2 :(得分:0)
您不能执行以下操作:
struct ContentView: View {
let allnum = ["1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10"]
var body: some View {
List {
ForEach(self.allnum[0 ..< 5], id: \.self) { num in
Text("\(num)")
}
}
}
}
因此,您只选择了整个列表的一部分。