在布局文本对象时(比如使用UILabel),经常需要根据文本内容来计算显示文本控件的大小(Frame/Bounds),以下例子代码展示了计算文本显示大小的基本过程:
// 需要首先确定显示文本的最大宽度maxWidth,一般设置为控件父容器的宽度
CGFloat maxWidth = self.bounds.size.width;
// 显示空间的最大大小,这里假定为(maxWidth, 1000)
CGSize maxSize = CGSizeMake(maxWidth, 1000);
// 画字符串选项
NSStringDrawingOptions opts = NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading;
// 段落选项
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
[style setLineBreakMode:NSLineBreakByCharWrapping];
// 字符串显示属性
NSDictionary *attributes = @{ NSFontAttributeName : [UIFont systemFontOfSize:16],
NSParagraphStyleAttributeName : style };
// 字符串bounds
CGRect rect = [string boundingRectWithSize:maxSize
options:opts
attributes:attributes
context:nil];
9058

被折叠的 条评论
为什么被折叠?



