0

我的代码中调用了一个长字符串theString,我将其传递给drawRect:在屏幕上绘制的方法。

    -(void)drawRect:(CGRect)rect
{
    [super drawRect:rect];
    [theString drawInRect:CGRectMake(0, 0, self.bounds.size.width, 200)]; 
}

如您所见,我可以将宽度设置为屏幕大小,但必须手动设置高度,当传递的字符串长度不同时,这是一个问题。如何自动检测框架需要的高度?同样在未来我可能会扩展它以包含不同字体样式的属性字符串,因此计算字符可能不是一个很好的选择。

4

2 回答 2

2

您可以做的是获取您的文本将具有的字体

UIFont *myFont = [UIFont fontWithName:@"SOME_NAME" size:16];

然后使用NSString's 方法sizeWithFont:,如下所示:

CGSize theStringSize = [theString sizeWithFont:myFont];

最后,设置字符串的宽度和高度:

[theString drawInRect:CGRectMake(0, 0, theStringSize.width, theStringSize.height)];

希望这可以帮助!

于 2013-06-11T22:59:55.657 回答
-1

你可以做到这一点RTLabel。从此链接下载RTLabel.h

RTLabel.m

通过以下方式使用它:将文本设置为RTLabel对象,它还将处理HTML字符串并获取RTLabel对象的大小,它将是您的文本的大小。

于 2013-06-12T00:42:11.223 回答