在SwiftUI中,ForEach
视图通常用于遍历一个集合(如数组)并为每个元素生成一个视图。默认情况下,ForEach
会假设集合中的每个元素都是唯一的,并且不会显示重复项。但是,如果你希望允许 ForEach
显示来自数组的重复项,可以通过自定义标识符来实现。
以下是一个示例代码,展示了如何在 SwiftUI 中允许 ForEach
显示来自数组的重复项:
import SwiftUI
struct ContentView: View {
let items = ["Apple", "Banana", "Apple", "Orange", "Banana"]
var body: some View {
VStack {
ForEach(items.indices, id: \.self) { index in
Text(items[index])
.padding()
.background(Color.gray.opacity(0.2))
.cornerRadius(8)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在这个示例中,我们使用了 items.indices
来遍历数组的索引,而不是直接遍历数组元素。通过这种方式,我们可以避免 ForEach
对元素的唯一性检查。
items.indices
:遍历数组的索引。id: \.self
:使用索引作为标识符,这样 ForEach
就不会对元素的唯一性进行检查。这种技术适用于需要显示重复项的场景,例如:
通过这种方式,你可以灵活地控制 ForEach
的行为,使其能够显示数组中的重复项。
领取专属 10元无门槛券
手把手带您无忧上云