ios - 当移动到空部分时,UICollectionView 没有给出正确的索引路径

标签 ios xcode uicollectionview

我一直在使用大量代码 LXReorderableCollectionViewFlowLayout(由 Stan Chang Khin Boon 编写)。它允许在 UICollectionView 中移动项目

我有一个包含多个部分的 Collection View 。这些部分使用其中包含多个控件的标题。我允许用户创建空部分并将项目拖到这些部分中

我使用 Collection View 来显示多个照片相册。每个部分都与不同的专辑相关。当每个相册中已有项目时,将照片从“相册 1”拖到“相册 2”效果很好。

但是,如果相册(部分)为空,我无法将对象移动到该空部分。

我认为问题出在“indexPathForItemAtPoint”。如果该部分中有项目,则此方法提供正确的 NSIndexPath。但如果它是空的,它总是返回section = 0,row = 0。

当我从“0”部分跨越边界进入“1”部分时,NSIndexPath theIndexPathOfSelectedItem 变为 0,0(部分,行)。我原本预计它会达到 1,0。

问题似乎出在“indexPathForItemAtPoint”。当我跨越边界进入不同的(空的)部分时,它没有考虑到该部分可能是空的,并且只是默认为 0, 0。

就像我之前所说的,如果“1”部分中已有项目,则索引路径设置正确。

关于我做错了什么有什么想法吗?

最佳答案

我最终在空白部分放置了一个虚拟(但不可见)项目。当我创建一个新部分时,我在该部分中放置一个虚拟值。我把它设置为不可见,这样它就不会显示出来。每当我添加新项目或从某个部分删除项目时,我都会进行测试以确保虚拟项目存在。

重要提示:如果该部分中至少有 1 个真实项目,我会删除虚拟值。否则,集合列表会尝试绘制它。

我确信有更好的方法来做到这一点。如果您知道如何操作,请发布新答案。

希望这有帮助。

关于ios - 当移动到空部分时,UICollectionView 没有给出正确的索引路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15304877/

相关文章:

ios - 使用 xcodebuild 在 iPhone 上安装应用程序

ios - 如何在swift 4中使用线程

ios - traitCollection 更改时更改单元格布局

ios - 如何在 Swift 和 ObjectMapper 中使用继承?

objective-c - Facebook iOS SDK 3.0 - session 未打开

ios - 如何在 swift 应用程序中存储表单数据

ios - Xcode 链接框架错误?

ios - Xcode 10 (10A255) 错误 : <unknown>:0: error: duplicate input file

ios - 更新未选中的 CollectionView 单元格?

ios - 将静态单元格添加到 UICollectionView