CellForRowAtIndexPath返回错误的单元格
问题描述:
我遇到了一个问题,其中cellForRowAtIndexPath返回了错误的单元格,因此它正在寻找并对错误的单元格执行其他操作。CellForRowAtIndexPath返回错误的单元格
我已经建立了非常大的自定义单元格,因为我适合一些UIImageViews(+文本+按钮),所以一个单元格占据了整个屏幕。当您向下滚动并且同时在屏幕上显示两个单元格时,如果您点击顶部单元格,则会缩进至底部单元格的内容(单元格内的按钮操作相同)。
我认为这可能是特定于IB,所以我重建了代码中的所有东西,但我仍然有相同的行为。
有什么办法解决这个问题,并维护正确的indexPaths?
答
我认为你的观点错了。 cellForRowAtIndexPath不会返回错误的单元格。它应该只是返回一个新的单元格,如果您使用dequeueReusableCellWithIdentifier或类似的方法,它可能已被回收。在这种情况下,dequeueReusableCellWithIdentifier将返回可能刚刚从顶部滚动的任何旧单元格。这是你的工作,采取新鲜细胞(这可能是一个新的细胞或回收的),并填写正确的值,在cellForRowAtIndexPath内。然后它返回的单元格将是“正确”的单元格,因为您刚刚写入了所有正确的值。因此,我会查看您的cellForRowAtIndexPath实现,以确保您传递的索引路径的正确值填充到cellForRowAtIndexPath返回的单元格中。
不是没有更多的信息去..但提示:框架是..不经常这是错的,很可能你的实现是越野车:/无论如何,请充实问题 –
你可以发布实施? –
没有人能够在没有看到您的代码的情况下为您提供帮助 –