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

时间:2013-03-08 23:08:38

标签: ios xcode uicollectionview

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

中移动项目

我有一个包含多个部分的集合视图。这些部分使用的标题包含几个控件。我允许用户创建空白部分并将项目拖到这些部分

我使用集合视图来显示多张照片相册。每个部分都与不同的专辑相关联。将照片从“相册1”拖动到“相册2”可以正常工作,因为每张相册中都有相关项目。

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

我认为问题在于“indexPathForItemAtPoint”。如果节中包含项,则此方法提供正确的NSIndexPath。但是如果它是空的,它总是返回section = 0,row = 0。

当我从“0”部分越过边界到“1”部分时,NSIndexPath theIndexPathOfSelectedItem变为0,0(section,row)。我原以为它会达到1,0。

问题似乎与“indexPathForItemAtPoint”有关。没有考虑到该部分可能为空,当我越过边界进入另一个(和空的)部分时,默认为0,0。

正如我之前所说,如果“1”部分中已有项目,则indexPath设置正确。

关于我做错的任何想法?

1 个答案:

答案 0 :(得分:2)

我最后在空白部分放置了一个虚拟(但不可见)项目。当我创建一个新的部分时,我在该部分中放置一个虚拟值。我让它看不见,所以它没有显示。我随时添加新项目或从我测试的部分中删除项目以确保虚拟项目在那里。

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

我确信有更好的方法可以做到这一点。如果你知道怎么做,请发一个新的答案。

希望这有帮助。