使用 .grouped tableview 时,摆脱在我的标题中添加的空间
Posted
技术标签:
【中文标题】使用 .grouped tableview 时,摆脱在我的标题中添加的空间【英文标题】:Get rid of added space to my headers when using .grouped tableview 【发布时间】:2020-06-05 17:32:56 【问题描述】:我把tableview .grouped 了,这样标题就不会粘了。但是,这会导致在 tableview 的顶部和底部添加额外的填充(我已修复),以及在我的标题视图顶部添加额外的空间。在线似乎人们唯一在谈论的是摆脱标题,但标题是我将其分组的原因,因为这样可以防止它粘住。如何摆脱 .grouped 添加到所有标题的 20 左右像素的填充而不摆脱我的标题视图?撤消 .grouped 设置会消除空白。这是我想要保持分组的唯一方法吗?
你会认为 Apple 会让这变得更容易。
我将标题涂成红色以突出显示上方不需要的空白。更改单元格所在行的高度不会影响白色区域。
【问题讨论】:
michaeldebo 你有没有找到解决这个问题的方法?我想像你一样使用部分标题(内联而不是粘性),但是一旦我将 tableview 的样式设置为.grouped
,我不希望苹果添加额外的灰色填充
【参考方案1】:
这将摆脱整个tableView的headerView和footerView:
tableView.tableHeaderView = UIView(frame: CGRect(x: CGFloat.leastNonzeroMagnitude, y: CGFloat.leastNonzeroMagnitude, width: tableView.bounds.size.width, height: CGFloat.leastNonzeroMagnitude))
tableView.tableFooterView = UIView(frame: CGRect(x: CGFloat.leastNonzeroMagnitude, y: CGFloat.leastNonzeroMagnitude, width: tableView.bounds.size.width, height: CGFloat.leastNonzeroMagnitude))
然后要将节标题的高度单独设置为0,您必须使用以下函数:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
return CGFloat.leastNonzeroMagnitude
对于每个部分的页脚,类似地:
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat
return CGFloat.leastNonzeroMagnitude
【讨论】:
感谢您抽出宝贵时间回答,但这并不能解决我的部分标题上方多余空白的问题。 当我尝试它摆脱我制作并想要显示的标题时,但留下了我试图摆脱的空白。我一定是做错了什么,因为我不能成为第一个在堆栈溢出时遇到这个问题的人。 Tableviews 已经存在多年... 你能发张图片让我们更清楚地了解吗? 完成。我将标题涂成红色以突出显示不需要的空白。更改 heightForRowAt 不会影响此空白区域。 空白似乎是footerView的问题。您是否将 footerView 的高度设置为 minimumNonZeroMagnitude?span> 【参考方案2】:tableView.sectionFooterHeight = 0.0 修复了这个问题。
【讨论】:
以上是关于使用 .grouped tableview 时,摆脱在我的标题中添加的空间的主要内容,如果未能解决你的问题,请参考以下文章