[英]SwiftUI - Dynamic segmented Picker Filter
我正在尝试构建一个具有分段样式的动态选择器,该样式会根据用户输入重新呈现自身。
换句话说,每次用户向filterValues
数组添加一个值时,分段选择器都应该重新渲染。
struct ContentView: View {
@State private var items = [Item]()
@State private var filterValueIndex = 0
@State private var filterValues: [Int] = [1, 2, 3, 5]
var body: some View {
Picker("Filter", selection: $filterValueIndex) {
ForEach(0 ..< filterValues.count) {
Text("\(filterValues[$0])")
}
}
.pickerStyle(SegmentedPickerStyle())
}
}
我们需要使用动态ForEach
如下(使用 Xcode 12.1 / iOS 14.1 测试)
Picker("Filter", selection: $filterValueIndex) {
ForEach(filterValues.indices, id: \.self) { // << here !!
Text("\(filterValues[$0])")
}
}
.pickerStyle(SegmentedPickerStyle())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.