2011-11-02 82 views
2

我创建的CustomCell包含UILabel,默认情况下,UILabel将启用两行文本,但有时会出现文本需要三行。如何在创建CustomCell之前计算文本大小

的字体类型和大小是固定的,不能改变,我试图找出创建UITableView/CustomCell使得细胞高度可以被正确地设置之前计算NSString/UILabel的长度的方法。将要显示的文本将由许多不同的词组成,例如'你的名字是XXXXX XXXXX,你的生日是......',而XXXXXXX是可变的元素。

希望这是有道理的,我考虑过的一个想法是创建一个方法,该方法包含从未显示的UILabel,并填充所需的文本,然后检查是否使用2或3行,但不知道如何执行这个。

是否有一个更优雅的方法来实现这一点?

回答

1

我相信NSString s sizeWithFont: constrainedToSize: lineBreakMode:是您正在查找的方法。这将返回一个CGSize,您可以通过该高度来确定单元格的高度(并且显然将标签的框架设置为正确的大小)。

注意:你应该通过一个CGSize参数到constrainedToSize:部分比你打算什么更大的高度是但标签的正确的最大宽度

1

有几个UIKit的功能与尺寸计算具有各种换行模式和字体的字符串。详情请参阅this doc

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

相关问题