繁体   English   中英

UITableViewAutomaticDimension不调整为UILabel文本高度

[英]UITableViewAutomaticDimension NOT adjusting to UILabel text height

我有一个消息传递应用程序,并将气泡视图两侧的标签约束设置为8。 我尚未设置高度限制,而是试图弄清楚为什么在滚动时标签在某些单元格上随机显示更多的高度和错误的大小:

    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.estimatedRowHeight = 30

标签设置为行数0和自动换行。

    func configureCell(message: MessageCD) {

    self.message = message

    let username = message.getSender()?.username
    let text = message.text

    if username == UserDefaults.standard.value(forKey: USERNAME) as? String {

        senderLbl.text = text
        recipientBubbleView.isHidden = true
        senderBubbleView.isHidden = false
    } else {
        recipientLbl.text = text
        senderBubbleView.isHidden = true
        recipientBubbleView.isHidden = false
    }
}

我还尝试在设置标签后立即使用sizeToFit(),但这也不起作用。 请参阅附件图像。 在此处输入图片说明

内容拥抱优先级解决了该问题。

if msgUsername == UserDefaults.standard.value(forKey: USERNAME) as? String {

        recipientLbl.setContentHuggingPriority(250, for: UILayoutConstraintAxis.vertical)
        senderLbl.setContentHuggingPriority(750, for: UILayoutConstraintAxis.vertical)
        senderLbl.text = message.text
        senderLbl.sizeToFit()
        recipientUsernameLbl.isHidden = true
        recipientBubbleView.isHidden = true
        senderBubbleView.isHidden = false

    } else {

        senderLbl.setContentHuggingPriority(250, for: UILayoutConstraintAxis.vertical)
        recipientLbl.setContentHuggingPriority(750, for: UILayoutConstraintAxis.vertical)
        recipientLbl.text = message.text
        recipientUsernameLbl.text = msgUsername
        recipientUsernameLbl.isHidden = false
        recipientLbl.sizeToFit()
        senderBubbleView.isHidden = true
        recipientBubbleView.isHidden = false
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM