ios - UITableViewAutomaticDimension 不调整到 UILabel 文本高度

标签 ios swift uitableview

我有一个消息传递应用程序,并在气泡 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
    }
}

我也尝试在设置标签后立即使用 sizeToFit() ,但这也不起作用。见附图。 enter image description here

最佳答案

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/

相关文章:

ios - 如何在 IOS Swift 中让 Sprite 只跳一次

ios - swift ,让我知道了这个 : interfaceOrientation was deprecated in iOS 8. 0

ios - 如何向用户显示 UITableViewCell 滑动操作的预览

ios - 无法在 Storyboard 中更改自定义 UICollectionViewCell

ios - 有没有办法在没有 Google Sign-In for iOS 的情况下实现 firebase 邀请(短信)?

ios - 应用程序暂停时主导航栏消失

iOS:如何在tableview中响应显示参数?

ios - 如何在 AVMutableComposition 中同时为多个视频层制作动画?

ios - Core Data 和 UISearchBar 之间的问题

ios - UITableView 标题中的标题未显示?