如何在创建自定义单元格之前计算文本大小

时间:2011-11-02 22:07:20

标签: iphone ios

我正在创建一个包含UILabel的CustomCell,默认情况下UILabel将有两行文本并启用环绕,但有时文本将需要三行。< / p>

字体类型和大小是固定的,无法更改,我尝试在创建NSString / {之前确定计算UILabel / UITableView长度的方法{1}}以便可以正确设置单元格高度。将要显示的文本将由许多不同的单词组成,例如'你的名字是XXXXX XXXXX,你的生日是...... ',而XXXXXXX是可变的元素。

希望这是有道理的,我考虑过的一个想法是创建一个方法,其中包含一个永远不会显示的CustomCell,并使用所需的文本填充它,然后检查是否使用了2或3行,但不确定这该怎么做。

是否有更优雅的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

我相信NSString s sizeWithFont: constrainedToSize: lineBreakMode:是您正在寻找的方法。这将返回CGSize,您可以获得高度来确定单元格的高度(并明确将标签的框架设置为正确的大小)。

注意:您应该将CGSize参数传递到constrainedToSize:部分,该部分的高度比您想要的高,但标签的正确最大宽度

答案 1 :(得分:1)

有几个UIKit函数用于计算具有各种换行模式和字体的字符串的大小。有关详细信息,请参阅this doc

特别是sizeWithFont:constrainedToSize:lineBreakMode:可能对此有用。