首页 > 解决方案 > SwiftUI:NavigationTitle 显示与列表和搜索字段不正常

问题描述

当我使用 NavigationView、NavigationTitle、List 和搜索字段时,会出现恼人的显示错误。

搜索字段和 NavigationTitle 未与列表对齐。

如果下一页有可搜索列表,将下一页列表拉下并完全显示搜索栏,对齐将恢复正常。但是如果你回到第一页并再次拉下搜索栏,就会出现同样的错误。

只需使用 Core Data 新建一个项目,并将 NavigationView 替换为此代码,即可轻松重现此 bug。

    NavigationView {
      List {
        ForEach(items) { item in
          NavigationLink {
            List{}.searchable(text: $text).navigationTitle("Test")
          } label: {
            Text(item.timestamp!, formatter: itemFormatter)
          }
        }
        .onDelete(perform: deleteItems)
      }.searchable(text: $text){}.navigationTitle("Title")
        .toolbar {
          ToolbarItem(placement: .navigationBarTrailing) {
            EditButton()
          }
          ToolbarItem {
            Button(action: addItem) {
              Label("Add Item", systemImage: "plus")
            }
          }
        }
      Text("Select an item")
    }
  }

或者,我做错了什么?

快照

标签: iosswiftswiftui

解决方案


最终,我找到了自己解决这个问题的方法。

我们可以手动设置列表样式:

.listStyle(InsetGroupedListStyle())

然后正常显示。


推荐阅读