SwiftUI - 动态分段选取器过滤器
Posted
技术标签:
【中文标题】SwiftUI - 动态分段选取器过滤器【英文标题】:SwiftUI - Dynamic segmented Picker Filter 【发布时间】:2020-11-26 00:12:19 【问题描述】:我正在尝试构建一个具有分段样式的动态选择器,该样式会根据用户输入重新呈现自身。
也就是说,每次用户向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())
【问题讨论】:
【参考方案1】:我们需要使用动态ForEach
,如下所示(使用 Xcode 12.1 / ios 14.1 测试)
Picker("Filter", selection: $filterValueIndex)
ForEach(filterValues.indices, id: \.self) // << here !!
Text("\(filterValues[$0])")
.pickerStyle(SegmentedPickerStyle())
【讨论】:
以上是关于SwiftUI - 动态分段选取器过滤器的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:如何将 CoreData 与动态过滤器相加?