【问题标题】:UICollectionView stops loading cells after moveItemAtIndexPath:toIndexPath:UICollectionView 在 moveItemAtIndexPath:toIndexPath: 之后停止加载单元格:
【发布时间】:2014-12-05 12:32:33
【问题描述】:

我有一个UICollectionViewUICollectionViewFlowLayout,其中包含许多项目。由于用户输入,我想重新排序单元格。

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

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

编辑:当我调用 [self.collectionView reloadData]; 时,甚至没有要求数据源提供任何东西。

【问题讨论】:

    标签: ios objective-c uikit uicollectionview


    【解决方案1】:

    问题在于UICollectionViewCell。高级描述是在移动动画期间从我的代码中向单元格发送了一个方法actionForKey。它导致单元格保持在内部being animated 状态。我找不到合理的解决方法并重构了一些位以避免actionForKey 调用。现在一切正常。

    【讨论】:

    • 拜托,你能详细解释一下,你在哪里找到“动画”状态?我有一个类似的不加载新单元格的问题(在完全不同但非常复杂的情况下),我想找出导致它的原因......
    • @MatejVargovčík 老实说,我不记得了。我认为这意味着我从我的代码中调用了actionForKey,它导致单元格“认为”它正在被动画化。您可以在此处找到有关 actionForKey 的更多信息:objc.io/issues/12-animations/animating-custom-layer-properties
    猜你喜欢
    • 2013-09-11
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2017-05-05
    • 2015-04-28
    • 2015-01-18
    • 2013-04-27
    • 1970-01-01
    相关资源
    最近更新 更多