【发布时间】:2015-10-04 10:53:38
【问题描述】:
我有一个集合视图,并且我已经实现了拖放功能。此外,当单元格靠近顶部或底部边缘时,我会以恒定速度滚动集合。
当我拖动单元格时,我会根据手势设置其变换属性,并在滚动时修改值。我还更改了索引路径的布局属性的转换属性。 单元格始终位于屏幕上的手势位置。但是,在某些时候,集合决定隐藏单元格,并且 cellForItemAtIndexPath 返回 nil。
为什么会发生这种情况,我该如何防止这种情况发生?
【问题讨论】:
-
您是否尝试在“visibleCells”数组中进行搜索?
-
是的。细胞确实不见了
-
因此,一旦您开始处理单元格,请将其保存在 ivar 中(因此保留)并保存其索引。如果系统要求您提供该索引的单元格,请返回您保留在 ivar 中的那个(这就是您需要知道 indexPath 的原因)。拖放完成后,您可以将 ivar 设为 nil(并保存 IndexPath)。
-
我使用 dequeueReusableCellWithReuseIdentifier 检索单元格,所以我认为该集合会将其排入队列,不是吗?我认为即使它被 ivar 保留,我也无法继续使用它
-
正确持有它不要尝试出列它。你问如何解决这个我告诉你如何,所以试试吧
标签: ios cocoa uicollectionview uicollectionviewlayout