我正在cellForRowAtIndex函数中创建一个自定义单元格,并用我的动态文本填充它。基于这个文本,单元格的高度是可变的,所以我需要使用heightForRowAt函数,但在该函数中我没有单元格。我可以创建一个新文本并用文本填充它,然后在其上调用我的calculateHeight函数,但后来我为每一行创建了2个单元格。
任何人都有更好的方法吗?按行索引在字典中的cellForRow函数中自己缓存单元格并使用它?在heightForRow之前调用了cellForRow吗?
到目前为止,我已经设法两次崩溃Xcode4,所以我希望有人已经这样做了。
答案 0 :(得分:1)
tableView:heightForRowAtIndexPath:
在之前调用
tableView:cellForRowAtIndexPath:
创建两个单元格是一种可能的解决方案,但创建两个单元格并不是一种非常有效的方法。但是,您不需要单元格来计算高度;您只需要字符串。
您可能想要使用
sizeWithFont:constrainedToSize:
在你的字符串上计算高度。
我可以提供有关如何执行此操作的详细信息,但您应该能够通过阅读文档来了解它。
答案 1 :(得分:1)
你所做的是在你的自定义单元格(例如)上创建一个类方法,它知道如何设置事物(静态大小的东西)的值,并在给定文本视图的偏移量的情况下进行一些数学运算例如,它可以告诉你在计算字符串给字体的高度后,单元格需要多大。