我的代码中有一个名为theString
的长字符串,我将其传递给drawRect:
方法在屏幕上绘制。
-(void)drawRect:(CGRect)rect
{
[super drawRect:rect];
[theString drawInRect:CGRectMake(0, 0, self.bounds.size.width, 200)];
}
如您所见,我可以将宽度设置为屏幕大小,但必须手动设置高度,这在传递的字符串长度不同时会出现问题。如何自动检测框架需要的高度?同样在将来,我可能会将其扩展为包含不同字体样式的属性字符串,因此计算字符可能不是一个很好的选择。
答案 0 :(得分:2)
您可以做的是获取文字所具有的字体
UIFont *myFont = [UIFont fontWithName:@"SOME_NAME" size:16];
然后使用NSString
的方法sizeWithFont:
,如下所示:
CGSize theStringSize = [theString sizeWithFont:myFont];
最后,设置字符串的宽度和高度:
[theString drawInRect:CGRectMake(0, 0, theStringSize.width, theStringSize.height)];
希望这有帮助!
答案 1 :(得分:-1)