2014-12-05 181 views
3

我有一个UICollectionViewUICollectionViewFlowLayout其中包含许多项目。由于用户输入,我想重新排序单元格。UICollectionView在moveItemAtIndexPath后停止加载单元格:toIndexPath:

[self.collectionView moveItemAtIndexPath:indexPath toIndexPath:newIndexPath]; 

这段代码执行后,集合视图不更新滚动时,它的内容。它不显示下一个单元格。它甚至不叫cellForItemAtIndexPath:,但它的内容大小是正确的(布局“更新”它的状态)。 因此,我们只能看到在重新排序之前分布在集合视图上的单元格。 任何线索可能是什么问题?这个问题有没有已知的解决方法?该应用程序仅适用于iOS 8,集合视图与UICollectionViewFlowLayout一起使用。

编辑:当我打电话[self.collectionView reloadData];甚至没有要求数据源。

回答

0

问题出在UICollectionViewCell。高级描述是在移动动画期间从我的代码中发送一个方法actionForKey。它导致细胞停留在内部being animated状态。我无法找到合理的解决方法并重构了一些位以避免拨打actionForKey。现在一切都按预期工作。

+0

请问,你能解释一下吗,你在哪里找到'正在动画'的状态?我有一个类似的问题,不加载新单元格(在完全不同的,但非常复杂的情况下),我想找到是什么原因造成它... – 2016-04-15 13:24:25

+1

@MatejVargovčík说实话,我不记得了。我认为这意味着我从我的代码中调用了'actionForKey',并导致单元格“认为”它正在动画化。你可以在这里找到更多关于actionForKey的信息:https://www.objc.io/issues/12-animations/animating-custom-layer-properties/ – wczekalski 2016-04-15 13:31:09

相关问题