uitableview - 为什么手动重用的 UITableViewCell 在行重新加载时消失?

标签 uitableview reuseidentifier

如果我保持固定 UITableViewCell使用重用标识符= nil作为 ivar 并返回特定行的此实例,然后专门使用 [tableView reloadRowsAtIndexPaths:withRowAnimation:] 重新加载该行,行内容消失(或有时闪烁)。当我向后滚动时,它再次变得可见。如果我这样做 [tableView reloadData]另一方面,它不会消失。

  • 为什么当我重新加载行时它会消失?
  • 当我重新加载整个表格时,为什么不呢?

  • 这是一个示例项目:https://github.com/hannesoid/HOTableViewTests

    我在 iOS 6 上对此进行了测试。
    我知道通常不推荐以这种方式(不使用重用标识符和出队)手动重用 UITableViewCell,但在一些非常静态的场景中,它会简化事情。

    最佳答案

    UITableView 由 Apple 优化,因此它使用相当少量的内存,但在单元格出现在屏幕上时仍然具有良好的性能。当你做这样的非标准的事情,绕过优化时,你就把整台机器都搞砸了。这是我的建议。如果您有一个特定的行作为实例变量,为什么不简单地尝试为它的重用标识符指定一个唯一的名称呢?让套件解决它。

    关于uitableview - 为什么手动重用的 UITableViewCell 在行重新加载时消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574334/

    相关文章:

    iphone - 表格 View 单元格按钮与其他单元格混淆?

    ios - dequeueReusableCell(indexPath: IndexPath 的 withIdentifier 标识符 : String,)在每次调用时返回 2 个不同的单元格

    ios - 每次创建单元格时,UIPageViewController 中的图像都会在 UICollectionView 中重复。使用库在scrollView中显示图像

    ios - 删除 UITableViewCell 后,出现空白行

    ios - 使用 SearchController 后的 DidSelect 导致崩溃 swift

    ios - 防止 UITableViewCells 出队和重新加载

    ios - 解码后如何恢复 UICollectionViewCell 中的绑定(bind)

    ios - 采访 Que Tableview reuseIdentifier 内部工作

    ios - UITableView Cell 只需点击几下即可呈现 View Controller

    iphone - 有什么办法可以增加UITableViewCell中detailTextLabel的宽度?