56

如何更改UITableView已开始出现在 iOS 15 中的部分标题上方的额外填充?

4

9 回答 9

88

从 iOS 15 开始,UITableView包含一个名为的新属性sectionHeaderTopPadding,它指定每个部分标题上方的填充量。

tableView.sectionHeaderTopPadding = 0.0
于 2021-06-27T20:39:40.520 回答
68

用于在应用程序的任何地方应用更改

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

最好在AppDelegate.

于 2021-09-23T11:04:32.367 回答
16

将它放在主要的 didFinishLaunchingWithOptions 中以全局修复它:

if (@available(iOS 15.0, *))
{
    UITableView.appearance.sectionHeaderTopPadding = 0;
}
于 2021-09-22T07:25:13.450 回答
6

obj-c 的全局方式:

if (@available(iOS 15.0, *)) {
    [[UITableView appearance] setSectionHeaderTopPadding:0.0f];
}
于 2021-11-25T16:20:24.820 回答
3

将它放在主要的 didFinishLaunchingWithOptions 中以全局修复它

if (@available(iOS 15.0, *)) {
    [[UITableView appearance] setSectionHeaderTopPadding:0.0f];
}
if #available(iOS 15.0, *) {
    UITableView.appearance().sectionHeaderTopPadding = 0.0
}
于 2021-12-12T07:08:35.677 回答
1

对于 Objective C 版本,您可以使用以下代码;

if (@available(iOS 15.0, *)) {
        [_tableViewC setSectionHeaderTopPadding:0.0];
        
};

其中 tableViewC 是目标表视图。

于 2021-10-26T12:07:15.840 回答
0

如果您像我一样在设置后在某些分组样式 tableViews 中遇到问题,sectionHeaderTopPadding但仍然看到第一部分的恼人间隙,只需在您的 VC 中添加以下内容viewDidLoad

tableView.tableHeaderView = UIView(frame: CGRect(x: .zero, y: .zero, width: .zero, height: CGFloat.leastNonzeroMagnitude))

这里找到

于 2022-02-09T01:34:58.617 回答
0

对于 Xamarin 表单,您可以在 FinishedLaunching 中的 LoadApplication 调用之后添加以下代码:

if(UIDevice.CurrentDevice.CheckSystemVersion(15, 0))
{
    void_objc_msgSend_nfloat(UITableView.Appearance.Handle, ObjCRuntime.Selector.GetHandle("setSectionHeaderTopPadding:"), 0);
}

我错过了版本检查,并且应用程序在低于 iOS15 的任何设备上崩溃,而没有通过 TestFlight 获得崩溃报告。

于 2021-11-10T10:21:01.057 回答
0

这是 iOS 15 中 UITableView 的新实例属性。 https://developer.apple.com/documentation/uikit/uitableview/3750914-sectionheadertoppadding

sectionHeaderTopPadding它指定每个节标题上方的填充量。

要删除填充,请使用以下代码

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

要从应用程序中的任何位置删除填充,请使用以下代码AppDelegate

if #available(iOS 15.0, *) {
    UITableView.appearance().sectionHeaderTopPadding = 0.0
}
于 2022-03-02T05:57:46.947 回答