gpt4 book ai didi

ios - dequeueReusableCellWithIdentifier 为不同的 indexPath 返回相同的单元格

转载 作者:搜寻专家 更新时间:2023-11-01 07:26:58 25 4
gpt4 key购买 nike

使用 dequeueReusableCellWithIdentifier 适用于前 7 个单元格,然后它随机开始重复使用 1-7 中的单元格以用于 8-14 等等......但是它应该创建新的单元格,因为它们尚不存在。这是我的代码-

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
NSLog(indexPath.description)
var cell = (tableView.dequeueReusableCellWithIdentifier("matchCell", forIndexPath: indexPath)) as! MatchCell
if (cell.created == nil) {
cell = configureCell(cell, withIndex: indexPath.section)
}
return cell
}

不知道为什么会这样。它适用于前 7 个单元...

最佳答案

单元格是可重复使用的,所以一旦它们离开屏幕,它们就会从 dequeueReusableCellWithIdentifier 返回给你,所以你的 if (cell.created == nil) 将不是真的用于重复使用的细胞。

有两种方法可以解决这个问题:

  1. 不要检查 cell.created == nil
  2. 覆盖 MatchCell 中的 prepareForReuse 并进行任何清理以供重用(并将 created 设置为 nil)

我个人喜欢第二种选择。 Apple Docs有关于 prepareForReuse 的更多信息。

关于ios - dequeueReusableCellWithIdentifier 为不同的 indexPath 返回相同的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com