繁体   English   中英

SwiftUI - 动态分段选择器过滤器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM