我有一个消息传递应用程序,并在气泡 View 的每一侧将标签约束设置为 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
}
}
最佳答案
Content Hugging Priority 解决了这个问题。
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
}
关于ios - UITableViewAutomaticDimension 不调整到 UILabel 文本高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45556124/