NSString sizeWithFont:constrainedToSize:未按预期工作

时间:2010-12-10 16:23:54

标签: iphone cocoa-touch ios

我正在尝试使用sizeWithFont,如下所示:

[commentTextLabel.text sizeWithFont:commentTextLabel.font
                  constrainedToSize:CGSizeMake(commentTextLabel.frame.size.width, CGFLOAT_MAX)
                      lineBreakMode:UILineBreakModeWordWrap];

当我这样做时,我希望返回的CGSize具有与传递的宽度相同的宽度(commentTextLabel.frame.size.width)但是,由于某种原因,尽管文本有足够的宽度,但宽度会减小垂直的空间来成长。

以下是我看到的值:

  • 在:360.000000, CGFLOAT_MAX
  • 出:335.000000, 88.000000

我只是误解了这个功能?如果是这样,我怎么能实现这个来确定约束到某个宽度时文本的高度?

2 个答案:

答案 0 :(得分:5)

字符串的内容和字体的大小是多少?

在我看来,它正如您所期望的那样包装单词并返回包含结果所需的最小大小。请注意,您的Out宽度仅比In的宽度少25个点。除非您的字符串恰好包裹在360点,否则您希望得到的宽度小于约束大小。

答案 1 :(得分:0)

在玩了一些之后,我相信正在发生的事情是文本以这样的方式包裹,即最长的行只有335像素宽。我正在使用的解决方案是仅使用此函数返回的高度。