码迷,mamicode.com
首页 > 移动开发 > 详细

iOS8.x UICollectionView 使用 item 的预估行高问题

时间:2016-08-01 01:45:34      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:

苹果在iOS8.0 推出了item的预估行高功能,用于适应动态计算 item 的 size:

@property (nonatomic) CGSize estimatedItemSize NS_AVAILABLE_IOS(8_0); // defaults to CGSizeZero - setting a non-zero size enables cells that self-size via -preferredLayoutAttributesFittingAttributes:

使用 estimatedItemSize 需要在自定义的 item 中实现 -preferredLayoutAttributesFittingAttributes: 方法动态计算 item 的 size。

经测试在8.1,8.2系统下,如果项目中集成有其他第三方 SDK ,使用该方法只会会出现 libc++abi.dylib: terminate_handler unexpectedly threw an exception 错误,全局断点并不能定位到错误地方,如果没有使用第三方 SDK,会报这样的错误

技术分享

重写流水布局,重写 layoutAttributesForElementsInRect: 方法,打印返回的布局属性,发现是空,找到原因,是在8.1,8.2系统中,使用预估行高时,自定义的 item 中的 -preferredLayoutAttributesFittingAttributes: 并没有被调用,这可能是系统的一个 bug。

iOS8.x UICollectionView 使用 item 的预估行高问题

标签:

原文地址:http://www.cnblogs.com/g-fly/p/5724401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!