【发布时间】:2014-09-30 21:59:14
【问题描述】:
我有一个自定义 UITableViewCell,其中包含从服务器获取的数据。当数据进入时,我设置了单元格的重用标识符。一切正常,直到我进行下拉刷新并获取新/更新的数据。来自服务器的标识符是相同的,但数据可能不同(在这种情况下这是预期的结果)。发生这种情况时,我需要重新创建单元格,并保持相同的重用标识符。我知道不设置重用标识符是解决此问题的一种方法,但这是一个非常糟糕的主意,会损害性能。
我在这里查看了很多涉及重用标识符的问题,但没有一个能够回答我的问题。
感谢您提供的任何见解!
【问题讨论】:
-
我认为你不明白它应该如何工作。重用标识符标识初始化单元格的特定方式(例如,设置背景颜色、添加标签等),因此,如果您使用该标识符将单元格出列,则无需重做初始化。
-
对于一个简单的表,所有行的格式都相同,一个单独的reuseIdentifier 值用于所有内容。
-
我知道reuseIdentifier 标识了一种识别单元格的特定方式。就我而言,每个单元格都是根据我从服务器获得的信息唯一创建的。所以当我滚动到底部并备份时,我确实得到了正确的单元格,因为设置了重用标识符,我不需要重新初始化它。当我进行下拉刷新时,单元格“x”的数据可能会发生变化,并且我的单元格设置方式,我需要重新创建单元格。
-
reuseIdentifier 标识单元格的格式。您需要自己定义什么构成“格式”以及什么构成“内容”(这在某种程度上是一种判断调用)。当您使用标识符出队时,您假设“格式”是正确的,并且您重置/重做任何“内容”。
标签: ios objective-c uitableview reuseidentifier