ios - 多行 UILabel 在自动 UITableViewCell 上无法正确显示

标签 ios iphone swift uitableview uilabel

编辑:我认为这可能与 iOS 8.3 有关。这不会发生在模拟器上,我的测试人员都没有问题,但我的 8.3 开发手机有问题。关于如何修复它的任何想法?

edit2:我在这里找到了答案https://stackoverflow.com/a/36711109/1552116 .我已经在下面回答了这个 SO 并将在 2 天内接受,但我想这在技术上是重复的?

我有一个 UITableView,rowHeight 设置为 UITableViewAutomaticDimension

每个单元格包含多个标签,其中一个可以是多行。有时,单元格正确显示,标签占用多行。其他时候,单元格大小正确,但标签只占用一行,在其他行应该消失的地方留下一大片空白。

tableview 由 NSFetchedResultsController 支持。

显示我的意思的图片(要清楚“预期”不是渲染,它是应用程序在某些时候运行的实际屏幕截图) enter image description here

我尝试过的事情+想法

页面上有一个刷新操作,我已经尝试了 tableView.reloadData()tableView.setNeedsLayout(),但似乎都没有帮助

我注意到创建通知时如果我在 tableView 上,它会正确显示。如果我强行退出该应用程序(或从 XCode 再次运行该应用程序)并且单元格是根据获取结果初始化的,那么它们会被错误地显示。

此应用也在 testflight 上,我们的 ~5 位测试人员中没有人报告过该问题。

编辑回复评论

设置标签的代码 cellForRowAtIndexpath

let cell = tableView.dequeueReusableCellWithIdentifier(StoredNotificationViewController.snTableViewCellReuseIdentifier, forIndexPath: indexPath) as! StoredNotificationTableViewCell
configureCell(cell, atIndexPath: indexPath)

配置单元格

    let storedNotification = snFetchedResultsController.objectAtIndexPath(indexPath) as? StoredNotification
    cell.setData(storedNotification)

单元格设置数据

    messageLabel.text = notification.message

最佳答案

答案在这里https://stackoverflow.com/a/36711109/1552116

基本上,您将 cell.updateConstraintsIfNeeded() 添加到 tableView(_:cellForRowAtIndexPath:) 方法的末尾

关于ios - 多行 UILabel 在自动 UITableViewCell 上无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39537394/

相关文章:

objective-c - LGPL/MPL 和静态库

ios - swift 3 : Rerecord video through AVFoundation

iphone - 什么是私有(private)框架以及我们将如何使用它们?

swift - swift 如何将文本文件转为字符串或数组?

ios - 如何为整个应用自定义UINavigationBar?

ios - 在 iOS 7 中使用系统字体时,NSAttributedString double "ff"计为 single "f"

ios - 自定义条码扫描仪,无法传回扫描数据

iphone - 访问数组成员

iPhone 急救人员

swift - 未使用选择器操作调用函数