我有一个带有 UICollectionViewFlowLayout 的 UICollectionView。我还实现了 UICollectionViewDelegateFlowLayout 协议。
在我的数据源中,我有一堆 UIViewControllers 响应自定义协议,所以我可以询问它们的大小和其他一些东西。
在 FlowLayout 委托中,当它要求 sizeForItemAtIndexPath: 时,我返回从我的协议中获得的项目大小。实现我的协议的 ViewControllers 根据方向返回不同的项目大小。
现在,如果我将设备方向从纵向更改为横向没有问题(横向项目较大)但如果我将其更改回来,我会收到此警告:
the item width must be less that the width of the UICollectionView minus the section insets left and right values.
Please check the values return by the delegate.
它仍然有效,但我不喜欢它收到警告,所以也许你可以告诉我我做错了什么。还有另一个问题。如果我不告诉我的 collectionViews collectionViewLayout 在 willAnimateRotationToInterfaceOrientation 中无效: sizeForItemAtIndexPath: 永远不会被调用。
希望你明白我的意思。如果您需要更多信息,请告诉我:)