如何根据它改变视图高度最近添加了子视图?

时间:2017-04-10 12:40:15

标签: ios uitableview ios-autolayout

我有这样的问题,同时试图创建一个简单的信使。 我来到这里:

  1. class ChatBubleUIView该班负责创建带有标签的bubleview。它工作正常,根据标签高度计算视图高度

  2. 在我的单元格中,我创建了一个内容视图。在单元格类中,我将新的ChatBubleUIView实例添加为内容视图的子视图。

  3. 问题是,内容无法扩展到ChatBubleInstance的大小。

    class ChatMessageTableViewCell: UITableViewCell, MessageCellConfiguration {
    
    var message: Message?
    
    override func awakeFromNib() {
        super.awakeFromNib()
    }
    
    func configureCell() {
    
            let chatBubleView = ChatBubleUIView(message: message!)
            self.addSubview(chatBubleView)
    } 
    }
    
  4. 在我的tableView委托

     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
     let cell = tableView.dequeueReusableCell(withIdentifier: "messageCell") as! ChatMessageTableViewCell
     let data = currentUser.mesaageHistory[indexPath.row]
    
    cell.message = data
    cell.configureCell()
    
    return cell
    }
    
  5. 此外,我还为tableView

    设置了估计的行高
     messageTableView.rowHeight = UITableViewAutomaticDimension
     messageTableView.estimatedRowHeight = 44
    
  6. 我该怎么做才能设置我的tableView行高度chatViewBubleUIView实例高度。 以前,我使用旧式方法解决了这个问题,以编程方式确定chatViewBubleUIView实例高度,然后实现heightForRowAtIndexPath。但我想使用AutoLayoaut来做到这一点。

1 个答案:

答案 0 :(得分:1)

设置标签的四个约束,例如resources/lang/,标签的高度数应为top,bottom,leading,trailing。然后它会根据内容自动增加它的高度。如果您在任何视图中使用此标签,则视图的约束应与我上面提到的标签相同!