我正在创建一个包含UILabel
的CustomCell,默认情况下UILabel
将有两行文本并启用环绕,但有时文本将需要三行。< / p>
字体类型和大小是固定的,无法更改,我尝试在创建NSString
/ {之前确定计算UILabel
/ UITableView
长度的方法{1}}以便可以正确设置单元格高度。将要显示的文本将由许多不同的单词组成,例如'你的名字是XXXXX XXXXX,你的生日是...... ',而XXXXXXX是可变的元素。
希望这是有道理的,我考虑过的一个想法是创建一个方法,其中包含一个永远不会显示的CustomCell
,并使用所需的文本填充它,然后检查是否使用了2或3行,但不确定这该怎么做。
是否有更优雅的方法来实现这一目标?
答案 0 :(得分:1)
我相信NSString
s sizeWithFont: constrainedToSize: lineBreakMode:
是您正在寻找的方法。这将返回CGSize
,您可以获得高度来确定单元格的高度(并明确将标签的框架设置为正确的大小)。
注意:您应该将CGSize
参数传递到constrainedToSize:
部分,该部分的高度比您想要的高,但标签的正确最大宽度
答案 1 :(得分:1)
有几个UIKit函数用于计算具有各种换行模式和字体的字符串的大小。有关详细信息,请参阅this doc。
特别是sizeWithFont:constrainedToSize:lineBreakMode:
可能对此有用。