带有SegmentedPickerStyle()的Picker不会在SwiftUI中更新动态标题

时间:2019-10-03 16:38:31

标签: swiftui

尝试在SwiftUI中构建一个简单的日期选择控件,该控件具有3天(最初是昨天,今天,明天)的三段式Picker样式的Picker以及可沿时间上移或下移的V形按钮,我被困在选择器的文本标签会奇怪地更新。

如果我增加状态变量,则所有三个选择器文本标签将按预期更新。如果我减小状态变量,则仅前两个Text标签会更新。

这是一个显示问题的简单例子。我正在使用Xcode版本11.1(11A1027)和iOS 13.1模拟器。如果您继续轻按“下一步”按钮,则三个标签均会按预期更新,但是请轻按“上一个”,第三个标签不会更新。再次轻按“下一步”,所有这三个都回到了正确的状态。

我的真实应用对包含日期数组的数据模型使用了ForEach迭代,但是这个简单的示例显示了相同的行为。

    struct ContentView: View {

    @State var middleValue = 2
    @State var selectedValue = 1

    var body: some View {
        VStack {
            Picker("Item", selection: $selectedValue) {
                Text("\(middleValue - 1)").tag(0)
                Text("\(middleValue)").tag(1)
                Text("\(middleValue + 1)").tag(2)
            }
            .pickerStyle(SegmentedPickerStyle())

            HStack {
                Button("Previous") {
                    self.middleValue -= 1
                }
                Spacer()
                Button("Next") {
                    self.middleValue += 1
                }
            }
            Spacer()
        }
        .padding()
    }
}

有什么想法吗?在此期间,我使用带修饰符的按钮构建了自己的细分控件,该修饰符提供了相似的UI,但是我很困惑为什么这不适用于Picker的SegmentedPickerStyle。

0 个答案:

没有答案