首页 > 解决方案 > 在 Swift 中舍入表格单元格的高度

问题描述

我需要计算表格的单元格高度,并将其四舍五入为可除以 5 的值。例如,当单元格大小为 116 时,正确的高度应为 120。

关键是我使用自适应布局来计算单元格高度。UITableViewCell 的子视图之一是一条垂直虚线,应该连接到下面的单元格。虚线由 5 个点的重复组成 - 虚线(2 点)和间隙(3 点)。因此,线视图的高度应四舍五入到可被 5 整除的值,以便与下面的单元格虚线正确连接。

连接虚线的两个单元格

标签: swiftuitableviewadaptive-layout

解决方案


假设您只想在值不是 5 的倍数时四舍五入,那么这样的事情很有用:我们需要专门向下舍入 CGFloat(这是 UIViews 衡量的):

let currentHeight = CGFloat(123.456)
let newHeight = ((currentHeight + 4.99) / 5).rounded(.down) * 5
=> 125

let currentHeight = CGFloat(125)
let newHeight = ((currentHeight + 4.99) / 5).rounded(.down) * 5
=> 125

我会将单元格的高度设置为五的倍数,并将虚线视图的高度设置为相同。(我认为这是你的意图,只是确保)。

不要忘记需要设置表格单元格高度和tableCell.contentView的高度。另外,您需要让 UITableView 知道其布局的单元格的高度。


推荐阅读