如何在 UITableView 部分之间添加空间?
Posted
技术标签:
【中文标题】如何在 UITableView 部分之间添加空间?【英文标题】:How to add space between UITableView sections? 【发布时间】:2015-06-04 22:56:14 【问题描述】:ios 编辑联系人UITableView
如何在部分之间添加空格,同时仍显示前部分的最后一个单元格的分隔符?
在下面的屏幕截图中,第三部分的第一个单元格突出显示。如何在其上方添加该空白而不将分隔符隐藏在其上方的“添加电话”单元格下方?我尝试添加一个白色的部分标题,但这隐藏了它上面的单元格的分隔符。
【问题讨论】:
你怎么知道它们是分隔符? 我没有,但它们看起来一模一样。我在我的问题中添加了更多细节以澄清我在问什么。 我的意思是,你怎么知道那些灰线不是作为单元格的一部分绘制的?我就是做这个的。我发现这样做和控制线条比使用表格单元格分隔符要容易得多。 我没有。自定义绘制每个分隔符可能是一个更好的主意(以防 Apple 决定更改其分隔符的高度),而不是像我在回答中那样仅绘制其中一个。 【参考方案1】:如果您只关心间距,请尝试以下代码:
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat
return 40
【讨论】:
【参考方案2】:作为一个 hack,我只是在标题视图中添加了一个分隔符。
// MARK: UITableViewDelegate
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
return section == 0 ? UITableViewAutomaticDimension : 24
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
if section == 0
return nil
else
let view = UIView(frame: CGRectZero)
view.backgroundColor = UIColor.whiteColor()
let separator = UIView(frame: CGRect(x: tableView.separatorInset.left, y: 0, width: 0, height: 0.5))
separator.autoresizingMask = .FlexibleWidth
separator.backgroundColor = tableView.separatorColor
view.addSubview(separator)
return view
如果您有干净简单的解决方案,请回答。
【讨论】:
【参考方案3】:在 iOS 15 上,您可以在部分标题中添加填充
if #available(iOS 15.0, *)
tableView.sectionHeaderTopPadding = 0
【讨论】:
以上是关于如何在 UITableView 部分之间添加空间?的主要内容,如果未能解决你的问题,请参考以下文章
两个 UItableview 单元格之间的间隙 3 [重复]