【问题标题】:UITableViewCell Reuse Identifier with Variable Height Cells具有可变高度单元格的 UITableViewCell 重用标识符
【发布时间】:2010-10-13 13:58:16
【问题描述】:

我在一个表格中有五个不同的单元格,跨越五个部分,只是高度和文本不同。我需要一个重用标识符还是五个?我正在使用自定义单元格。

Apple 文档谈到重用具有“相同通用”配置的单元格。不同的高度是否会使缓存和重用透视图各不相同。我可能使用不同的字体,但单元格之间的其余部分是相同的,颜色等。

当我弹出这个表格并推送一个新表格时,新表格单元格的高度将根据新行选择中文本内容的数量而有所不同。

由于我的设备在运行我的应用程序时似乎已经变热,我只想确保我能有效地执行此操作。我想重用表中的缓存和单元格,以及在使用新数据重新加载表时。

不胜感激。

【问题讨论】:

    标签: iphone caching reusability


    【解决方案1】:

    你可以有一个单一的重用标识符,但要改变高度,你必须实现 UITableViewDelegate 方法:

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    

    也就是说,我无法想象一个 44 像素高的单元格和另一个 70 像素高的单元格具有“相同的常规”配置。如果它们的高度不同,那么它们的内容可能也会不同,而 将需要不同的重用标识符。

    【讨论】:

    • 我正在考虑这样做,唯一的区别是某些单元格的图像比其他单元格的图像更高,因此存在可变高度适用于相同重用标识符的情况。
    • 如果它们的高度不同,它们的内容可能会有很大不同,这需要不同的重用标识符。实际上并没有那么多.内存开销来自于必须创建和销毁诸如标签、文本视图和按钮之类的对象。如果您只是更改大小但保持相同的总体布局(即:相同的对象),那么重用单元格应该没问题并且效果更好。
    猜你喜欢
    • 2014-09-04
    • 1970-01-01
    • 2012-03-03
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    相关资源
    最近更新 更多