【发布时间】:2021-09-10 06:29:27
【问题描述】:
如何更改 iOS 15 中已开始出现的 UITableView 部分标题上方的额外填充?
【问题讨论】:
标签: ios uitableview ios15
如何更改 iOS 15 中已开始出现的 UITableView 部分标题上方的额外填充?
【问题讨论】:
标签: ios uitableview ios15
从 iOS 15 开始,UITableView 包含一个名为 sectionHeaderTopPadding 的新属性,它指定每个节标题上方的填充量。
tableView.sectionHeaderTopPadding = 0.0
【讨论】:
if #available(iOS 15.0, *) 中?
13.x 才能使用 tableView.sectionHeaderTopPadding 属性。
用于在应用程序的任何地方应用更改
if #available(iOS 15.0, *) {
UITableView.appearance().sectionHeaderTopPadding = 0.0
}
最好是AppDelegate。
【讨论】:
将这个放在主要的 didFinishLaunchingWithOptions 中以全局修复它:
if (@available(iOS 15.0, *))
{
UITableView.appearance.sectionHeaderTopPadding = 0;
}
【讨论】:
obj-c 的全局方式:
if (@available(iOS 15.0, *)) {
[[UITableView appearance] setSectionHeaderTopPadding:0.0f];
}
【讨论】:
Objective C 版本可以使用下面的代码;
if (@available(iOS 15.0, *)) {
[_tableViewC setSectionHeaderTopPadding:0.0];
};
其中 tableViewC 是目标表视图。
【讨论】:
把这个放在主要的didFinishLaunchingWithOptions中全局修复它
if (@available(iOS 15.0, *)) {
[[UITableView appearance] setSectionHeaderTopPadding:0.0f];
}
if #available(iOS 15.0, *) {
UITableView.appearance().sectionHeaderTopPadding = 0.0
}
【讨论】:
对于 Xamarin Forms,您可以在 FinishedLaunching 中的 LoadApplication 调用之后添加以下代码:
if(UIDevice.CurrentDevice.CheckSystemVersion(15, 0))
{
void_objc_msgSend_nfloat(UITableView.Appearance.Handle, ObjCRuntime.Selector.GetHandle("setSectionHeaderTopPadding:"), 0);
}
我错过了版本检查,并且应用程序在低于 iOS15 的任何设备上崩溃,而没有通过 TestFlight 获得崩溃报告。
【讨论】: