在ios中设置文本(大多数时候)后,UILabel不更新其高度

Posted

技术标签:

【中文标题】在ios中设置文本(大多数时候)后,UILabel不更新其高度【英文标题】:UILabel does not update its height after setting text (Most of the times) in ios 【发布时间】:2016-08-06 00:42:23 【问题描述】:

我在 tableview 中自动调整单元格大小时遇到​​问题,想知道是否有人对我有任何建议。我有一个用文本设置的标签。我在 IB 中将 Lines 设置为 0。 我也加入了

   override func viewDidLoad() 
            super.viewDidLoad()
            tableView.rowHeight = UITableViewAutomaticDimension
            tableView.estimatedRowHeight = 90
            tableView.allowsSelection = true
        

当我向下滚动到更多单元格时。有时,大多数时候,标签不会更新其大小以包含整个文本。

我在使用 firebase 获取后在后台线程中设置文本,我正在使用 firebase 并解析。 设置文本后,我有:

postCell.updateConstraints()
postCell.layoutIfNeeded()

有什么想法吗?谢谢 Screenshot1 Screenshot2

【问题讨论】:

确保单元格中的文本设置以及任何强制单元格大小更新的调用发生在主队列上。 this post 可能会有所帮助。 【参考方案1】:

Self-Size-Cell 对约束非常严格。例如,您的单元格有一个标签。您应该对单元格顶部、底部、左侧和右侧进行限制。或者,如果您固定了标签的宽度,则不需要对左右进行约束。换句话说,操作系统必须能够计算单元格及其子视图的确切大小。所以检查你的约束。

【讨论】:

以上是关于在ios中设置文本(大多数时候)后,UILabel不更新其高度的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 Swift 在 UITableView 中的部分标题的 UIView 中设置 UILabel 的文本

UILabel 在使用文本设置属性时显示自定义字体错误,但在代码中设置时工作正常

如何使用 AFNetworking 在 UILabel 中设置 UIProgressView 的下载状态?

iPad上的UILabel文本未调整大小

“Italic”在Xcode -iOS中的UILabel中不起作用

如何使用自动布局在一个宽度相同的 uitableviewcell 中设置八个 uilabel