警告描述如下:
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.
發(fā)生場(chǎng)景:
在portrait orientation下原本正常的collectionview由于UIDeviceOrientation切換為landscape而導(dǎo)致報(bào)以上的warning躬审,原因是UIDeviceOrientation更新后collection重新排布各item時(shí),由于collection view 的layout在獲取sizeforcell的返回值時(shí)發(fā)現(xiàn)高度超過了屏幕高度所致蜈七。導(dǎo)致這個(gè)warning的原因是,由于sizeforcell 中 仍使用portrait orientation下計(jì)算出來的值而導(dǎo)致所計(jì)算出來的Cell height仍為portrait下的值所致(此時(shí)cell width是等于portrait下屏幕寬度的胞锰,在landscape下是滿足要求即并未超過此時(shí)屏幕寬度的)
解決方案如下:(在uiviewcontroller中重載willrotate的方法以在rotate即將開始時(shí)invalidatelayout)
注: invalidatelayout的邏輯在 sizeWillChange方法中
可以參考invalidate layout上的討論?