2010-12-10 36 views
1

我试图用sizeWithFont如下:的NSString sizeWithFont:constrainedToSize:工作不正常

[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

上午我只是误解的功能?如果是这样,我怎么能实现这一点,以确定限制到一定宽度的文本的高度?

回答

5

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

在我看来,它正在按照您的预期换行,并返回包含结果所需的最小大小。请注意,您的Out宽度只比您的In小25个点。除非你的字符串正好包裹了360个点,否则你会期望得到的宽度小于你的约束尺寸。

0

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