我在cellForRowAtIndex函数中创建了一个自定义单元格,并用我的动态文本填充它。单元格的高度是基于这个文本的变量,所以我需要使用heightForRowAt函数,但在该函数中我没有单元格。我可以新建一个,用文本填充,然后调用我的calculateHeight函数,然后为每行创建2个单元格。
谁有更好的方法?缓存单元格自己在cellForRow功能在字典行索引和使用?cellForRow在highightforrow之前调用吗?
到目前为止,我已经设法使Xcode4崩溃了两次,所以我希望有人已经这样做了。tableView:heightForRowAtIndexPath:
在
之前调用tableView:cellForRowAtIndexPath:
创建两个单元格是一个可能的解决方案,但创建两个单元格并不是一个非常有效的方法。但是,您不需要单元格来计算高度;您所需要的只是字符串。
你可能想使用
sizeWithFont:constrainedToSize:
来计算高度。
我可以提供如何做到这一点的细节,但您应该能够通过阅读文档来弄清楚。
你要做的是在你的自定义单元格(例如)上创建一个类方法,它知道事物(静态大小的事物)的值将被设置,并做一些数学计算来确定给定文本视图的偏差,例如,它可以告诉你在计算字符串将被给定的字体有多高后,单元格需要多大