从iOS7开始,在我的UITableView顶部有额外的空间它有一个UITableViewStyleGrouped样式。
这里有一个例子:
tableview从第一个箭头开始,有35个像素的无法解释的填充,然后绿色的头是一个由viewForHeaderInSection返回的UIView(其中section为0)。
有人能解释一下这个35像素的数量是从哪里来的吗?我如何才能在不切换到UITableViewStylePlain的情况下摆脱它?
更新(回答):
在iOS 11及更高版本中:
tableView.contentInsetAdjustmentBehavior = .never
当你使用UITableView.Style.grouped或UITableView.Style.InsetGrouped时,如果没有“tableview header”,tableview将自动添加一个顶部inset填充到“section header”,修复很简单:
self.tableview.tableFooterView = UIView(frame: CGRect.init(origin: .zero, size: CGSize.init(width: tableview.frame.size.width, height: 1)))
self.tableview.tableHeaderView = UIView(frame: CGRect.init(origin: .zero, size: CGSize.init(width: tableview.frame.size.width, height: 1)))
如果你使用uitableview。style。plain
self.tableview.contentInsetAdjustmentBehavior = .never
一般来说就足够了
我检查了所有的答案。没有一个对我有效。我所要做的就是
self.myTableView.rowHeight = UITableViewAutomaticDimension
self.myTableView.estimatedRowHeight = 44.0
此外,这个问题并没有发生在tableView的顶部。它发生在tableView每个部分的顶部。
这个问题只发生在iOS9上。我们的应用在iOS10和iOS 11上运行良好。
我强烈推荐你看看这个很棒的问题和它的顶级答案:
在UITableView中使用自动布局进行动态单元格布局和可变行高