gpt4 book ai didi

ios - UICollectionView - iOS 10 - 在 iPhone 6 Plus 模拟器上崩溃但在真实设备上工作

转载 作者:IT王子 更新时间:2023-10-29 05:22:54 25 4
gpt4 key购买 nike

我创建了一个 UICollectionView,它在模拟器和真实设备上都可以在 iPhone 5s/SE/6/6s/7 等小型设备上正常工作,但是当涉及到 iPhone 6Plus、iPhone 7Plus 和任何设备时,我遇到了一个奇怪的情况iPad 版本。它在真实设备上运行良好,但在模拟器中崩溃并出现以下错误:

Assertion failure in -[_UIFlowLayoutSection computeLayoutInRect:forSection:invalidating:invalidationContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.5.2/UIFlowLayoutSupport.m:823

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UICollectionViewFlowLayout internal error'

到目前为止我发现,如果我删除 estimatedItemSize 它工作正常但自动布局不再存在,但如果我启用它它会在模拟器中崩溃。

我使用的是最新的 Xcode 版本和 iOS 10。

知道它为什么会崩溃吗?

最佳答案

在布局之前调用 invalidateLayout 是解决此问题的方法。

UIViewController 子类中:

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

或在 UIView 子类中:

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

关于ios - UICollectionView - iOS 10 - 在 iPhone 6 Plus 模拟器上崩溃但在真实设备上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40744891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com