从iOS7开始,在我的UITableView岁生日的顶部有一个UITableViewStyleGrouped风格的额外空间.

下面是一个例子:

enter image description here

表视图从第一个箭头开始,有35个像素的未解释填充,然后绿色标题是由viewForHeaderInSection返回的UIView(其中部分是0).

有没有人能解释一下这个35像素的大小是从哪里来的,我怎样才能在不切换到UITableViewStylePlain的情况下go 掉它?


Update (Answer):

在iOS 11和更高版本中:

tableView.contentInsetAdjustmentBehavior = .never

推荐答案

我已经找到了我最初的bug的原因,并创建了一个示例项目来展示它.我相信有一个iOS7错误.

从iOS7开始,如果使用GROUPED样式创建UITableView,但在First Layout上没有设置委托,然后设置委托并调用reloadData,则顶部将有一个永远不会消失的35px空间.

请看我做的这个展示错误的项目:https://github.com/esilverberg/TableViewDelayedDelegateBug

特别是这个文件:https://github.com/esilverberg/TableViewDelayedDelegateBug/blob/master/TableViewDelayedDelegateBug/ViewController.m

如果第24行处于活动状态,

[self performSelector:@selector(updateDelegate) withObject:nil afterDelay:0.0];

顶部将有额外的35px空间.如果行27是活动的并且24被注释掉,

self.tableView.delegate = self;

顶部没有空间.这就像tableView将结果缓存在某个地方,并且在设置委托并调用reloadData之后不重绘自身.

Ios相关问答推荐

Flutter中抛出后期应用错误

使用UIGraphicsBeginIMAext创建新图像会扭曲图像 colored颜色

自定义alert 未执行任何操作

iOS SwiftUI需要不带箭头显示弹出窗口""

如何仅在TextField中的文本发生更改时才执行代码?

在SwiftUI中使用系统图像和色调创建圆形按钮

从后台线程调用DispatchObject的方法安全吗?

如何使用Xcode15.1在iMessage扩展模块中显示贴纸

iOS Swift 应用程序实例的存活时间

SwiftUI Select 器值在超过最大值时重置

SwiftUI Disclosure Group 文本对齐

在所有 tableview / collectionview 中禁用滚动指示器

Xcode 14 弃用了位码 - 但为什么呢?

NSFetchedResultsController 由字符串的第一个字母创建的部分

当键盘出现在 iOS 中时,将 UIView 上移

有没有办法在 xib 文件中的视图和顶部布局指南之间添加约束?

判断从 JSON 字符串返回的 Objective-C 中的空值

如何在 iphone 屏幕中间显示活动指示器?

打开 XIB 文件后 Xcode 6.3 冻结/挂起

openURL:在 iOS 10 中已弃用