繁体   English   中英

CellForRowAtIndexPath返回错误的单元格

[英]CellForRowAtIndexPath returning the wrong cell

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

我已经构建了相当大的自定义单元格,因为我正在使用一些UIImageViews(+文本+按钮),因此单元格会占用整个屏幕。 当您向下滚动并且同时在屏幕上有两个单元格时,如果您点击顶部单元格,它将分割为底部单元格的内容(对于单元格内的按钮操作相同)。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM