我使用此代码为UITableView
使用动态高度单元格:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "QuestionsCell", for: indexPath) as! QuestionsCell
cell.label1.text = ""
cell.label2.text = ""
cell.label1.text = some text from array
cell.label2.text = some text from array
cell.label1.lineBreakMode = .byWordWrapping
cell.label1.numberOfLines = 0
cell.label1.sizeToFit()
return cell
}
然后我在Storyboard中为每个元素(顶部,底部,前导和尾随)固定了所有约束。在iPhone上一切正常,但在我滚动UITableView
时会发生这种情况(动态标签高度):
答案 0 :(得分:0)
sizeToFit()只会使cell1与文本一样大。 您还需要为表格视图单元格使用自动高度大小。
在viewDidLoad中,
self.tableView.rowHeight = UITableViewAutomaticDimension
您还需要确保从粗体标签到“12天前”标签有垂直约束,以确保它们之间始终存在垂直空间,因此它们不会重叠。
答案 1 :(得分:0)
您需要实现此委托方法:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
如果这不起作用,则检查顶部textView和底部textView之间是否存在垂直间距约束。