使用自动调整单元格设置UICollectionView后出现异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用自动调整单元格设置UICollectionView后出现异常相关的知识,希望对你有一定的参考价值。

我仔细地跟着那个exemple来转换我的collectionView,使用动态高度同时使用Nibs。

viewDidLoad中设置estimatedItemSize之后:

override func viewDidLoad() {
    super.viewDidLoad()
    if let layout = self.collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
        layout.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize
    }
}

我得到这个例外:

2017-09-14 16:03:06.686930-0400 ClientCenterApp[404:48958] *** Assertion failure in -[_UIFlowLayoutSection computeLayoutInRect:forSection:invalidating:invalidationContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3600.7.47/UIFlowLayoutSupport.m:823
2017-09-14 16:03:06.689177-0400 ClientCenterApp[404:48958] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UICollectionViewFlowLayout internal error'

任何人都知道为什么?

答案

这解决了我的问题:

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    collectionView.collectionViewLayout.invalidateLayout()
}

以上是关于使用自动调整单元格设置UICollectionView后出现异常的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 8 中使用自动布局和自动调整单元格大小

UICollectionView 导致单元格的自动布局问题

POI如何自动调整Excel单元格中字体的大小

如何让excel表格自动适应文字长度?

如何使用自动布局动态调整具有固定宽度的collectionview单元格高度?

怎样根据内容自动调整excel表格的行高列宽?