更改两个UITableViewCell之间的间隙以匹配行间距

时间:2018-03-29 14:34:35

标签: ios swift uitableview autolayout uilabel

我有UITableView那种模拟编码界面。它必须是UITableView

每行代码都是UITableViewCell。由于代码行可能比TableView更长/更宽,因此我将其高度调整为内部UILabel的大小。

codeTableView.rowHeight = UITableViewAutomaticDimension //when creating the tableView

cell.textLabel?.numberOfLines = 0 //when creating the cell

按预期工作。但是当然,在cell.textLabel的两个实际行之间,单元格(或#34;代码行")之间的差距要大得多。

我如何匹配这两个高度,以便它们始终相同?澄清:我的意思是一行cell.textLabel的两行与两行tableViewCells的最后一行和第一行之间的差异。它们应该是平等的。

这是我的情况的图像(细胞是青色,标签是绿色) enter image description here

使用约束

的解决方案尝试

使用约束会导致标签被压缩。并且我无法通过约束设置标签高度,因为它的高度需要变化(取决于行数)

cell.textLabel?.translatesAutoresizingMaskIntoConstraints = false
cell.textLabel?.topAnchor.constraint(equalTo: cell.topAnchor, constant: 20.0).isActive = true
cell.textLabel?.bottomAnchor.constraint(equalTo: cell.bottomAnchor, constant: -20.0).isActive = true

enter image description here (单元格为青色,标签为绿色)

问题是,约束会调整label而不是单元格的大小。并且label高度无法使用约束来修复,因为它需要根据行数自由更改

1 个答案:

答案 0 :(得分:1)

一种方法:使用自动布局,将标签固定到Top: 0Bottom: 0。那个 应该(有效地)为你提供在单元格之间相同的行间距。

我的原型单元格...我将前导和尾随设置为16,行数为零,因此较长的文本是自动换行(使用headIndent为32的属性文本):

enter image description here

结果(iPhone 7,横向):

enter image description here

并且,相同的视图,选择了一个表行:

enter image description here