NSString boundingRectWithSize边界未得到遵守

Bre*_*ttS 12 nsstring uikit ios7

有没有人知道在这里工作或我目前做错了什么.

CGSize boundingSize = CGSizeMake(288, 9999);

CGRect boundingRect = [text boundingRectWithSize:boundingSize 
                                                 options:NSStringDrawingUsesLineFragmentOrigin
                                              attributes:[NSDictionary dictionaryWithObjectsAndKeys:theFont, NSFontAttributeName, nil]
                                                 context:nil];
Run Code Online (Sandbox Code Playgroud)

当代码在iOS7上运行时(在手机和SIM卡上),返回的大小为416.3宽,高度为15.5.很明显,只是忽略了boundingRectWithSize.有没有其他人遇到这个,如果有的话,有人知道如何解决它或有人指出我在哪里我错了.

Ada*_*ght 4

根据苹果文档

您可以使用此方法来计算绘制字符串所需的空间。您在 size 参数中指定的约束是渲染器如何调整字符串大小的指南。但是,如果需要额外的空间来呈现整个字符串,则此方法返回的实际边界矩形可能大于约束。通常,渲染器保留宽度约束并根据需要调整高度约束。

如果您指定固定字体和太小的空格,则必须做出一些调整。在本例中,它是边界空间。我猜你期望换行。288 的宽度是否允许任何合理的换行?

  • 这很好,但我要求它在 288 宽和 9999 高的空间中绘制文本。它返回的值为 416 宽和 15 高。显然,它的高度有足够的空间。我只想固定宽度并返回高度,但似乎存在一些问题。有什么事情可以做断线而我错过了吗? (2认同)