使用drawInRect打印出NSString的边界



我当前使用drawInRect在字符串上绘制文本,限制为使用CGRectSize的大小。它也是集中的。

[text drawInRect:CGRectMake(0,0,nWidth,nHeight) withFont:font lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];

我需要了解的是实际绘制文本的大小和偏移量。因为它是居中的,所以在绘制文本之前很有可能存在X偏移。

我看到了命令boundingRectWithSize,但我认为IOS可能不支持它?

获取文本的大小,

CGSize size = [text sizeWithFont:font constrainedToSize:CGRectMake(0,0,nWidth,nHeight) lineBreakMode: UILineBreakModeWordWrap];

(参见文档)

然后,由于它是居中的,边界将是

CGRect bounds = CGRectMake((nWidth - size.width)/2, ..., size.width, size.height);

您想要NSString上UIKit类别中的方法。。。

- (CGSize)sizeWithFont:(UIFont *)font

这给了你所需的尺寸,然后你可以计算你的居中(或其他)位置。

最新更新