美文网首页
collectionview因UIDeviceOrientati

collectionview因UIDeviceOrientati

作者: 纵横而乐 | 来源:发表于2015-05-29 10:35 被阅读273次

警告描述如下:

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.

发生场景:

在portrait orientation下原本正常的collectionview由于UIDeviceOrientation切换为landscape而导致报以上的warning,原因是UIDeviceOrientation更新后collection重新排布各item时,由于collection view 的layout在获取sizeforcell的返回值时发现高度超过了屏幕高度所致。导致这个warning的原因是,由于sizeforcell 中 仍使用portrait orientation下计算出来的值而导致所计算出来的Cell height仍为portrait下的值所致(此时cell width是等于portrait下屏幕宽度的,在landscape下是满足要求即并未超过此时屏幕宽度的)

解决方案如下:(在uiviewcontroller中重载willrotate的方法以在rotate即将开始时invalidatelayout)

在collection view重排之前invalidatelayout

注: invalidatelayout的逻辑在 sizeWillChange方法中

可以参考invalidate layout上的讨论 

相关文章

网友评论

      本文标题:collectionview因UIDeviceOrientati

      本文链接:https://www.haomeiwen.com/subject/kqgrqttx.html