iOS8 中的 invalidateLayout 等效项

Posted

技术标签:

【中文标题】iOS8 中的 invalidateLayout 等效项【英文标题】:invalidateLayout equivalent in iOS8 【发布时间】:2014-10-29 19:02:39 【问题描述】:

我发现在 ios8 中调用 invalidateLayout 会导致崩溃行为,这可能是由于上次 WWDC 引入的带有上下文的新 invalidateLayout。尽管如此,我还没有找到使整个集合视图布局无效的等效方法。

假设我希望这一切都像 iOS7 的 invalidateLayout 一样发生。应该怎么做?

iOS7: [collectionView.collectionViewLayout invalidateLayout];

iOS8:???

【问题讨论】:

【参考方案1】:

从 iOS 8 开始,您将希望在批量更新块中使布局无效:

    [collectionView performBatchUpdates:^
        [layout invalidateLayout];
     completion:nil];

【讨论】:

这究竟是什么原因?

以上是关于iOS8 中的 invalidateLayout 等效项的主要内容,如果未能解决你的问题,请参考以下文章

带有 invalidateSupplementaryElements 和 UICollectionViewLayoutInvalidationContext 的 invalidateLayout

使用 invalidateLayout 调用的高级 UICollectionView 动画

使用 invalidateLayout 加载数据后调整 UICollectionViewCell 的大小

UICollectionView invalidateLayout 不会在屏幕方向更改时触发 sizeForItem

iOS8中的UIActionsheet

iOS8 中的 UIViewController 自动布局