【问题标题】:how to remove iOS 15 extra top padding in swiftui InsetGroupedListStyle?如何在swiftui InsetGroupedListStyle中删除iOS 15额外的顶部填充?
【发布时间】:2021-11-17 08:20:43
【问题描述】:

我在 SwiftUI 中有一个 InsetGroupedListStyle 列表,并注意到在 iOS 15 中添加了一个额外的顶部填充。如何控制或删除它?

List {
    Section(header: Text("Header")) {
        // some content
    }
}
.listStyle(InsetGroupedListStyle())

这里是 iOS 14:

和 iOS 15:

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/68155090/…
  • 这很有用,但在我的情况下没有帮助,因为问题不在于节标题顶部填充,而实际上是整个列表顶部填充。
  • 我想知道它是否与 iOS15 中添加到列表中的新刷新控件有关

标签: ios swift swiftui swiftui-list


【解决方案1】:

要解决此问题,您可以使用headerProminence

Section("Header") {
  // some content
}
.headerProminence(.increased)

解决表格视图的问题

if #available(iOS 15.0, *)
    UITableView.appearance().sectionHeaderTopPadding = 0;

已更新:我想我找到了针对这个特定案例的解决方案:

tableView.tableHeaderView = .init(frame: .init(x: 0, y: 0, width: 0, height: CGFloat.leastNonzeroMagnitude))

【讨论】:

  • 这适用于部分,但在我的情况下没有帮助,因为问题不是部分标题顶部填充,而是整个列表顶部填充。我试过了,没有任何区别。
  • 你试过直接设置tableView.sectionHeaderTopPadding = 0.0吗?
  • 你是什么意思。我正在使用 swiftUI,所以没有 tableView。 sectionHeader 只是一个列表,没有修饰符。这就是为什么需要使用 UITableView.appearance()
  • @alionthego 好的,我明白了,我已经编辑了我的答案
  • 这不是解决方案。这与标题突出无关。这是添加顶部填充的列表。
【解决方案2】:

我遇到了同样令人沮丧的问题,这样做对我有帮助

List {
    Section(header: Text("Header")) {
        // some content
    }
}
.listStyle(PlainListStyle())

注意这改变了我的标题的颜色

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 2017-05-13
    • 2021-09-06
    • 2015-10-24
    • 1970-01-01
    • 2022-01-14
    • 2017-08-21
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多