码迷,mamicode.com
首页 > 其他好文 > 详细

UILabel 根据text的内容来调整大小

时间:2014-07-24 05:05:58      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   os   io   

有时候,在UILabel的text过长的时候,我们需要让label进行自适应大小,之前我们必须要获得这个UILabel的size,这便是根据text的内容和性质(字体,行间距等决定的)。 
 
在ios7中,使用boundingRectWithRect方法来获得CGSize:
 
 
 
//文字的字体
NSDictionary *attribute = @{NSFontAttributeName:[UIFont fontWithName:@"Heiti SC" size:15.0f]};

 
//将text转化为NSMutableAttributedString类型
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:_titleLabel.text attributes:attribute];
 
//设置行间距
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:6.0f];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [_titleLabel.text length])];
 
//获得UILabel的size,其中,296和93是size的限定值
CGSize DateSize = [attributedString boundingRectWithSize:CGSizeMake(296, 93) options: NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading  context:nil].size;
    
//如果UILabel的宽度太宽的话
if (DateSize.width > 518.0f/2) 
{ 
    _titleLabel.size = CGSizeMake(296.0f, DateSize.height);
    _titleLabel.textAlignment = NSTextAlignmentLeft;
    _titleLabel.lineBreakMode = NSLineBreakByCharWrapping;
    _titleLabel.numberOfLines = 0;  //不限定行数,自动换行
    _titleLabel.attributedText = attributedString;
}

 

UILabel 根据text的内容来调整大小,布布扣,bubuko.com

UILabel 根据text的内容来调整大小

标签:style   blog   color   使用   os   io   

原文地址:http://www.cnblogs.com/rambot/p/3864263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!