NSString sizeWithFont:constrainedToSize:未按预期工作

olt*_*man 1 iphone cocoa-touch ios

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

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

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

以下是我看到的值:

  • 在: 360.000000, CGFLOAT_MAX
  • 日期: 335.000000, 88.000000

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

小智 5

你的字符串的内容和字体的大小是什么?

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