您的位置:首页 > 产品设计 > UI/UE

uilabel字符串的宽高度

2015-04-15 17:43 309 查看
今天又遇到计算字符串宽高度问题了,又去百度了好多。这次先记下一点吧。

1,如果只单纯的计算一个单行字符串的宽度的话

NSString *str=@"你好我是你我是你的号年度卡拉是大家啊啊的可垃圾的垃圾收到了就爱看";
CGSize size= [nal.text sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16]}];


这样直接获得宽度 和单行高度

2,如果不只一行,那就自己设宽度限制吧。

NSString *str=@"你好我是你我是你的号年度卡拉是大家啊啊的可垃圾的垃圾收到了就爱看";

CGSize size=[self boundingRectWithSize:CGSizeMake(200, CGFLOAT_MAX) withTextFont:[UIFont systemFontOfSize:16] withLineSpacing:0 with:str];

-(CGSize)boundingRectWithSize:(CGSize)size   withTextFont:(UIFont *)font withLineSpacing:(CGFloat)lineSpacing with:(NSString *)usestr{

NSMutableAttributedString *attributedStr=[[NSMutableAttributedString alloc]initWithString:usestr attributes:@{NSFontAttributeName:font}];

NSMutableParagraphStyle *paragraphStyle=[[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:lineSpacing];

[attributedStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, usestr.length)];

CGSize textSize = [attributedStr boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;
return textSize;

}

这样应该得到要的宽度和高度了,那个NSMutableParagraphStyle *paragraphStyle现在不太清楚,好像是设置行间距的。希望再次进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uilabel 高度 宽度