【发布时间】:2015-02-11 13:44:09
【问题描述】:
如果我有一个带有自动布局的单元格,我自己在一个循环中,从哪里获取集合视图中单元格的大小
我知道sizeForItemAtIndexPath 应该从数据中获取大小,而不是从单元格本身,因为尚未绘制单元格,但在自动布局中,我无法仅通过查看数据来计算,除非我以我以后可以从中计算的方式将约束放入代码中(似乎是歪的)
另一方面,UIView 确实有intrinsicContentSize 和systemLayoutSizeFittingSize,它们给出了已经绘制或将要绘制的视图的大小。
但在 sizeForItemAtIndexPath 中我还没有视图,数据只是数据。
单元格笔尖看起来像这样
我应该以什么方式获取自定义单元格的大小(来自 .nib)?
我可以在技术上硬编码图像和图标的大小,但感觉不对。在一个应该告诉控制器它是什么大小的函数中询问视图它的大小也是错误的
【问题讨论】:
-
你想显示什么数据?有很多方法可以获取数据将在屏幕上占据的大小。对于文本,您可以获得
NSAttributedString的边界矩形。对于图像,您可以确定希望它在屏幕上的大小等。您还可以实例化一个代理视图,您可以将其重复用于调整大小(在我的测试中,您不能为此目的实例化一个单元格)。给我一些详细信息,我会尽力为您提供更具体的答案。 -
我添加了笔尖截图
-
啊,好的。如果您有自定义 XIB,请参阅此答案:stackoverflow.com/a/28161915/394484。应该给你你想要的。
标签: ios objective-c autolayout uicollectionview