单元格高度不增加取决于tableview swift中的标签文本

问题描述

我需要根据消息标签文本更改单元格高度

Cell.Xib Design img

对于消息标签,我已经给出了限制

 trailing = leading = top = 10,height => 30 (greater then or equal to height)

和行数 = 0

现在标签增加但单元格没有增加为什么?

o/p

o/p img

代码

 func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
    return msgArray.count
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
    let cell = tableView.dequeueReusableCell(withIdentifier: "MessageDetailsTableViewCell",for: indexPath) as! MessageDetailsTableViewCell
    self.tableView.separatorStyle = .none

    cell.msgLabel.text = msgArray[indexPath.row]
    cell.nameLabel.text = nameArray[indexPath.row]
    cell.timeLabel.text = timeArray[indexPath.row]
    cell.picImageview.image = UIImage(named: "icon12")
    
    return cell
    
}

func tableView(_ tableView: UITableView,heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100//UITableView.automaticDimension
}

如果我给 heightForRowAt = UITableView.automaticDimension 那么什么都没有,如果我将它的高度固定为 100 那么单元格不会增加,为什么?请帮忙

解决方法

您可以通过两个步骤来简化:

1. heightForRowAt 方法:

   func tableView(_ tableView: UITableView,heightForRowAt indexPath: IndexPath) -> CGFloat {
      return UITableView.automaticDimension
   }

2. UILabel 属性

   yourLabel.numberOfLines = 0 // or you can set numberOfLines from storyBoard.
,

为此,您需要按照以下步骤操作。

步骤 1: 将标签的约束设置为前导、尾随、顶部和底部。将底部约束设置为大于等于。

enter image description here

第 2 步:将标签的行数设置为 0。

label.numberOfLines = 0

第 3 步:在 ViewDidLoad 函数中

    self.tableView.rowHeight = UITableView.automaticDimension
    self.tableView.estimatedRowHeight = 150