【问题标题】:iOS 15 - UItableView top padding issue [duplicate]iOS 15 - UItableView 顶部填充问题 [重复]
【发布时间】:2021-11-16 03:58:45
【问题描述】:

我将我的 iPhone 更新到 iOS 15 并将 Xcode 更新到 13 版本,现在我的应用在所有具有 tableView 的屏幕顶部都有一个奇怪的填充。

我该如何解决这个问题?

【问题讨论】:

    标签: ios swift xcode uitableview ios15


    【解决方案1】:

    经过大量研究,我在 Apple 开发者文档中找到了答案: https://developer.apple.com/documentation/uikit/uitableview/3750914-sectionheadertoppadding?language=objc

    所以,为了解决这个问题,我在我使用 UITableView 的所有屏幕中添加了这段代码:

    if #available(iOS 15.0, *) {
       tableView.sectionHeaderTopPadding = .zero
    }
    

    有了这段代码,差距就消失了。

    【讨论】:

      【解决方案2】:

      如果你想在所有视图中移除这个顶部填充,你可以在 AppDelegate 中调用这个代码:

      if #available(iOS 15.0, *) {
          UITableView.appearance().sectionHeaderTopPadding = .zero
      }
      

      【讨论】:

      • 上述Objc变体:if (@available(iOS 15.0, *)) { [[UITableView appearance] setSectionHeaderTopPadding:CGFLOAT_MIN]; }
      【解决方案3】:

      下面的代码解决了我的问题

       if #available(iOS 15, *) {
              UITableView.appearance().tableHeaderView = .init(frame: .init(x: 0, y: 0, width: 0, height: CGFloat.leastNonzeroMagnitude))
          }
      

      【讨论】: