SwiftUI:列表项跳转到选取器表单中的标题
Posted
技术标签:
【中文标题】SwiftUI:列表项跳转到选取器表单中的标题【英文标题】:SwiftUI: Jump of List Items to headline in a Picker Form 【发布时间】: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://***.com/a/59591337/13679052
【问题讨论】:
【参考方案1】:您可以尝试在View
的init
中添加此内容:
UITableView.appearance().tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: Double.leastNonzeroMagnitude))
这将删除NavigationBar
和Form
之间的默认空格(并防止跳跃)。如果您想保留此空间,您可以将height
指定为其他值。
注意:这将在全局范围内更改 UITableView
的行为,而不是仅针对特定的 View
。
【讨论】:
以上是关于SwiftUI:列表项跳转到选取器表单中的标题的主要内容,如果未能解决你的问题,请参考以下文章