【问题标题】:CellForRowAtIndexPath returning the wrong cellCellForRowAtIndexPath 返回错误的单元格
【发布时间】:2012-12-29 18:47:54
【问题描述】:

我遇到了一个问题,即 cellForRowAtIndexPath 返回错误的单元格,因此,它在错误的单元格上执行其他操作。

我已经构建了很大的自定义单元格,因为我正在安装一些 UIImageViews(+文本 +按钮),所以一个单元格占据了整个屏幕。当您向下滚动并且两个单元格同时在屏幕上时,如果您点击顶部的单元格,它会转到底部单元格的内容(对于单元格内的按钮操作也是如此)。

我认为这可能是 IB 特有的,所以我在代码中重新构建了所有内容,但仍然有相同的行为。

有没有办法解决这个问题并保持正确的 indexPaths?

【问题讨论】:

  • 不是没有更多的信息可以继续。但是一个提示:框架是 .. 不经常是错误的,所以你的实现很可能是错误的:/无论如何,请充实这个问题跨度>
  • 你能发布实现吗?
  • 没有看到您的代码,任何人都无法帮助您
  • 需要查看代码,但以防万一:检查单元格高度。
  • 当您在 cellForRowAtIndexpath 返回一个单元格时,从中删除所有子视图,这可能是问题所在。

标签: iphone ios uitableview segue


【解决方案1】:

我认为你的观点是错误的。 cellForRowAtIndexPath 不会返回错误的单元格。它应该只返回一个新单元格,如果您使用 dequeueReusableCellWithIdentifier 或类似的,它可能已被回收。在这种情况下,dequeueReusableCellWithIdentifier 将返回任何可能刚刚从顶部滚动的旧单元格。您的工作是获取新单元格(可能是新单元格或回收的单元格)并将正确的值填充到其中的 cellForRowAtIndexPath 中。然后它返回的单元格将是“正确”的单元格,因为您刚刚向它写入了所有正确的值。因此,我会查看您对 cellForRowAtIndexPath 的实现,以确保将您传递的索引路径的正确值填充到 cellForRowAtIndexPath 返回的单元格中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多