在不使用单元格的情况下计算UICollectionView中的sizeForItemAtIndexPath

时间:2015-02-11 13:44:09

标签: ios objective-c autolayout uicollectionview

我和我一起在循环中从哪里获取单元格的大小在集合视图中,以防我有一个具有自动布局的单元格

我知道sizeForItemAtIndexPath应该从数据而不是从单元格本身获得大小,因为单元格尚未绘制,但在自动布局中,我无法通过查看数据来计算,除非我以一种我以后可以从中计算出来的方式编写约束代码(似乎是歪曲的)

另一方面,UIView确实有intrinsicContentSizesystemLayoutSizeFittingSize,它给出了已经绘制或将要绘制的视图的大小。

但是在sizeForItemAtIndexPath中我还没有视图,数据只是数据。

细胞笔尖看起来像这样 enter image description here

我应该以什么方式获得自定义单元格的大小(来自.nib)?

我可以在技术上对图像和图标的代码大小进行硬编码,但这感觉不对。询问视图在一个函数中它的大小应该告诉控制器它的大小

也是错误的

1 个答案:

答案 0 :(得分:2)

您可以使用配置的屏幕外原型单元格,然后使用它确定其大小。

这是UITableView pre iOS8确定单元格高度的常用方法。相同的方法应该适用于UICollectionView。

请在此处查看已接受的答案:Using Auto Layout in UITableView for dynamic cell layouts & variable row heights