UITableView dequeueReusableCellWithIdentifier:多次返回nil

时间:2010-03-21 00:32:11

标签: iphone uitableview

在我对设备和模拟器的测试中,dequeueReusableCellWithIdentifier:不止一次返回nil(对于有15行的表,大约返回5次)。这是正常的吗?我的印象是它第一次应该只返回

3 个答案:

答案 0 :(得分:3)

UITableView类实现dequeueReusableCellWithIdentifier:的行为。只要你在正确的位置(即tableView:cellForRowAtIndexPath:内)调用它,那么你可以做的就是返回或不返回可重用的单元格。

除非我能证明特定行为导致崩溃或性能问题,否则我不会担心。

答案 1 :(得分:2)

表格视图使用飞行重量模式处理单元格。如果您熟悉这一点,您将更好地掌握正在发生的事情和原因。

答案 2 :(得分:1)

tableView和collectionView都有限制。如果您滚动得足够快,或者该单元格上有很多元素(准备时间较长),iOS可能无法像调用cellForIndexPath那样快速地准备可重用单元格。

因此,对于tableView,dequeueReusableCellWithIdentifier:返回nil。 在CollectionView dequeueReusableCellWithReuseIdentifier:forIndexPath:的情况下,将为您创建一个新对象。