首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dequeueReusableCellWithIdentifier为不同的indexPath返回相同的单元格

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

Stack Overflow用户
提问于 2016-02-16 22:55:16
回答 1查看 967关注 0票数 1

使用dequeueReusableCellWithIdentifier工作的前7个单元,然后它随机开始重用从1-7的细胞8-14等等.然而,它应该创造新的细胞,因为它们还不存在。这是我的密码-

代码语言:javascript
复制
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个细胞很好..。

EN

回答 1

Stack Overflow用户

发布于 2016-02-16 23:07:28

单元格是可重用的,因此一旦它们离开屏幕,它们将从dequeueReusableCellWithIdentifier返回给您,因此对于重用的单元格来说,您的if (cell.created == nil)不会是正确的。

解决这一问题的方法有两种:

  1. 不要检查cell.created == nil
  2. 在您的prepareForReuse中重写MatchCell,并为重用进行任何清理(并将created设置为零)

我个人喜欢第二种选择。苹果文档有关于prepareForReuse的更多信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35444618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档