【问题标题】:SwiftUI: Jump of List Items to headline in a Picker FormSwiftUI:列表项跳转到选取器表单中的标题
【发布时间】:2020-06-04 10:32:49
【问题描述】:

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

我有一个导航视图并且我在一个表单中。我的问题是,在这个表单中,我有一个带有选择器的部分,它通过 ios 默认带有一个 navigationLink 到一个新视图,它显示了我所有的选项。这个选项在一个列表中,但是一旦这个视图出现,它们就在 navgationTitle 下方,一秒钟后它们会跳到正确的位置。我该如何解决这个跳跃问题?我认为问题与 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.com/a/59591337/13679052

【问题讨论】:

    标签: ios swiftui picker swiftui-navigationlink


    【解决方案1】:

    您可以尝试在Viewinit 中添加此内容:

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

    这将删除NavigationBarForm 之间的默认空格(并防止跳跃)。如果您想保留此空间,您可以将height 指定为其他值。

    注意:这将在全局范围内更改 UITableView 的行为,而不是仅针对特定的 View

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多