SwiftUI:将列表项跳转到选择器窗体的标题

时间:2020-06-04 10:32:49

标签: ios swiftui picker swiftui-navigationlink

已解决:清理Build文件夹并更新到最新的xCode版本后,问题对我而言已经消失了。

我有一个导航视图,并且我处于表单中。我的问题是,在此表单中,我有一个带选择器的小节,它在ios默认情况下通过导航链接带到一个新视图,该视图显示了我的所有选项。此选项在列表中,但是一旦出现此视图,它们就会在navgationTitle下方,然后一秒钟后,它们会跳到正确的位置。我该如何解决这个跳跃问题?我认为该问题与选择器有关,因为它在内部调用导航链接。

我使用XCode 11.5,下面是导致问题的示例代码:

@State var i = 0
var body: some View {
   NavigationView {
     Form {
         Section {
            Picker(selection: $i, label: Text("Pick")) {
                ForEach(0..<5,id: \.self) {
                   Text($0.description)
                }
             }
         }
     }.navigationBarTitle("PickerTest")
   }
}

此答案为我解决了一个非常类似的问题,但不适用于此特定案例https://stackoverflow.com/a/59591337/13679052

1 个答案:

答案 0 :(得分:0)

您可以尝试将其添加到init的{​​{1}}中:

View

这会删除UITableView.appearance().tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: Double.leastNonzeroMagnitude)) NavigationBar之间的默认空格(并防止跳转)。如果要保留此空间,可以将Form指定为其他值。

注意:这将全局更改height的行为,而不仅限于此特定的UITableView