如何在iPhone上找到包装文本的Rect?

时间:2008-10-07 18:16:38

标签: iphone layout text

有人可以推荐一种很好的方法来确定iPhone上某些包装文本的Rect吗?我已经在2.1 SDK中尝试了NSString的所有内置方法都无济于事。 size方法永远不会返回允许我在自定义视图中完全适合包装文本的大小。

我正在绘制一些用户可自定义的文本,这些文本应该在我的自定义视图的限制范围内尽可能大。如果我可以确定为给定的最大宽度和字体大小完全封装包装文本所需的矩形,我可以提高或降低字体大小,直到文本大到足以完全填充自定义视图而不被剪裁。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:3)

NSString的sizeWithFont:constrainedToSize:方法可能很有用:

CGSize sizeForText = [theText sizeWithFont:theFont constrainedToSize:CGSizeMake(myMaxWidth, 9999)];

你说你已经尝试了所有大小的方法,但根据你的描述,它听起来像你正在寻找的。

答案 1 :(得分:0)

由于您知道视图大小,因此请调用NSString的sizeWithFont:forWidth:lineBreakMode :,从最小字体大小,视图宽度和UILineBreakModeWordWrap开始。然后增加字体大小,直到返回的大小与视图一样高。

如果要设置最大字体大小,也可以将其实现为二进制搜索,而不是加大字体大小。

答案 2 :(得分:0)

我发现无论何时设置UITextView的text属性,它都会更新其contentSize属性。这使得调整文本视图框架的大小非常容易,以便在滚动视图等中显示。