SwiftUI: 列表项的跳转到标题的选取器表单中

问题描述 投票:0回答:1

解决了。在清理Build文件夹并更新到最新的xCode版本后,我的问题就消失了。

我有一个导航视图,我在一个表格中。我的问题是,在这个表格中,我有一个带有选择器的部分,它通过ios默认的导航链接将我带到一个新的视图中,显示我所有的选项。这些选项是在一个列表中,但是一旦这个视图出现,它们就在导航标题下面一点,一秒钟后它们就跳到了正确的位置。我怎样才能解决这个跳转的问题?我认为这个问题与Picker有关,因为它在内部调用了导航链接。

我使用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.coma5959133713679052。

ios swiftui picker swiftui-navigationlink
1个回答
0
投票

你可以尝试在 init 你的 View:

UITableView.appearance().tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: Double.leastNonzeroMagnitude))

这将移除默认的 NavigationBarForm (并防止 跳跃 也是)。) 如果你想保留这个空间,你可以指定的是 height 为其他值。

注意:这将改变 UITableView 的行为,而不是针对这个特定的 View 只是。

© www.soinside.com 2019 - 2024. All rights reserved.