从iOS7开始,在我的UITableView顶部有额外的空间它有一个UITableViewStyleGrouped样式。

这里有一个例子:

tableview从第一个箭头开始,有35个像素的无法解释的填充,然后绿色的头是一个由viewForHeaderInSection返回的UIView(其中section为0)。

有人能解释一下这个35像素的数量是从哪里来的吗?我如何才能在不切换到UITableViewStylePlain的情况下摆脱它?


更新(回答):

在iOS 11及更高版本中:

tableView.contentInsetAdjustmentBehavior = .never

当前回答

我刚刚从接口生成器中删除了UITableView,再次创建它,奇怪的35px消失了。

它似乎有一个奇怪的错误在接口生成器。

其他回答

在iOS系统中,我在滚动视图中设置了tableview。当我在同一个屏幕上点击“返回”时滚动视图在顶部占用更多空间..为了解决这个问题,我使用了:

 self.automaticallyAdjustsScrollViewInsets = false

一个布尔值,指示视图控制器是否应自动调整其滚动视图嵌入。 默认值为true,该值允许视图控制器根据状态栏、导航栏、工具栏或选项卡栏所占用的屏幕区域来调整其滚动视图嵌入。如果您想自己管理滚动视图插入调整,例如当视图层次结构中有多个滚动视图时,则设置为false。

我刚刚从接口生成器中删除了UITableView,再次创建它,奇怪的35px消失了。

它似乎有一个奇怪的错误在接口生成器。

当你需要隐藏你的tableHeaderView时,你应该使用这段Swift 3代码:

tableView.tableHeaderView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 0.0, height: CGFloat.leastNormalMagnitude)))

故事板:

确保你的UITableView top约束没有说“Under top layout guide”。相反,它应该说“顶部空间:Superview”(Superview.Top)。

当然,在包含UITableView的UIViewController中,取消勾选“调整滚动视图Insets”。

唯一对我有用的是:

迅速:

tableView.sectionHeaderHeight = 0
tableView.sectionFooterHeight = 0

objective - c:

self.tableView.sectionHeaderHeight = 0;
self.tableView.sectionFooterHeight = 0;

另外,我还有多余的空间来写第一部分。这是因为我错误地使用了tableHeaderView属性。修正了,以及添加:

self.tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 0.01))