计算label的高度,总是忘记方法名字

0.添加个lab:

UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 200, 20)];
lab.text = @"左间距,上间距有效,貌似右间距没用。原本以为和contentSize有关,调了也没用。这一点还不太清楚。PS:上间距会根据文字内容多少和UITextView的高度来判断是否取消。所以最好还是设contentInset的时候就把上间距搞掉。";
lab.numberOfLines = 0;
lab.backgroundColor = [UIColor greenColor];
lab.font = [UIFont systemFontOfSize:15];
lab.textColor = [UIColor blackColor];
[self.view addSubview:lab];

1.普通的lab,就是根据字体大小,计算高度

NSDictionary *dic = @{NSFontAttributeName : [UIFont systemFontOfSize:15]};//
CGSize size = [lab.text boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
lab.frame = CGRectMake(20, 100, 200, size.height);
1.1.png

2.设置的lab需要设置行间距、字体、字体颜色啥的,就成富文本了。

NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.lineSpacing = 10;
NSDictionary *dic = @{NSFontAttributeName : [UIFont systemFontOfSize:15],
                        NSParagraphStyleAttributeName : style, //行间距
                        NSKernAttributeName : @5};//字间距   
CGSize size = [lab.text boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;    
NSMutableAttributedString *attS = [[NSMutableAttributedString alloc] initWithString:lab.text attributes:dic];
lab.attributedText = attS;
lab.frame = CGRectMake(20, 100, 200, size.height);
2.2.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 6,172评论 1 4
  • 当你进入高三的时候,你的心里会有些恐慌 当你进入高三的时候,你会面临高节奏的复习 当你进入高三的时候,你会进行无穷...
    清流潺潺阅读 2,607评论 0 0
  • System.out.println("hello");
    放下举起间阅读 1,001评论 0 0
  • 清明假期最后一天,和糖豆姑姑约好去公园,然而去姑姑家一切计划都会拖延,果然将近四点我们终于顶着大风来到了丁香湖。由...
    爱丽丝孟游记阅读 2,523评论 0 0