4

我正在尝试使用动画显示和隐藏选择器视图。代码非常简单,虽然代码适用于其他视图,但我无法让它与选择器视图一起使用。隐藏选取器视图会导致非常奇怪的动画,如下面的 gif 所示。

当我删除列表中的第一行或最后一行时,动画似乎是正确的。换成Form {}普通的List {}也解决了这个问题。所以它只发生在“插入分组样式”中。

问题:

在此处输入图像描述

代码:

import SwiftUI

struct ContentView: View {
    static let options = ["One", "Two", "Three"]
    
    @State private var showPicker = false
    @State private var selectedOption = 0
    
    var body: some View {
        Form {
            Text("First row") // Removing this row or the last row solves the issue
            
            Button("Show Picker") {
                withAnimation {
                    showPicker.toggle()
                }
            }
            
            if showPicker {
                Picker("Picker", selection: $selectedOption) {
                    ForEach(0 ..< ContentView.options.count) {
                        Text(ContentView.options[$0])
                    }
                }.pickerStyle(InlinePickerStyle())
            }
            
            Text("Third row")
            Text("Last row") // Removing this row or the first row solves the issue
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

有谁知道如何解决这个问题?我想这是一个 SwiftUI 错误,因此解决方法也会非常有帮助。

4

0 回答 0