码迷,mamicode.com
首页 > 移动开发 > 详细

iOS_根据文字字数动态确定Label宽高

时间:2016-07-15 20:12:01      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

iOS_根据文字字数动态确定Label宽高

iOS7中用以下方法替代过时的iOS6中的- (CGSize)sizeWithFont:(UIFont *)font 方法

- (CGSize)sizeWithAttributes:(NSDictionary *)attrs;

// iOS7_API_根据文字 字数动态确定Label宽高
 
 
// 设置Label的字体 HelveticaNeue  Courier
UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue"size:24.0f];
_nameLabel.font = fnt;
// 根据字体得到NSString的尺寸
CGSize size = [_nameLabel.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil]];
// 名字的H
CGFloat nameH = size.height;
// 名字的W
CGFloat nameW = size.width;
_nameLabel.frame = CGRectMake(00, nameW,nameH);

iOS7中用以下方法boundingRectWithSize:options:attributes:context:替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法

// 根据正文内容多少,动态确定正文content的frame

     
    // 宽度W
    CGFloat contentW = self.bounds.size.width - _content.frame.origin.x - kMargin;
    // label的字体 HelveticaNeue  Courier
    UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:18.0f];
    _content.font = fnt;
    _content.numberOfLines = 0;
    _content.lineBreakMode = NSLineBreakByWordWrapping;
    // iOS7中用以下方法替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
    CGRect tmpRect = [_content.text boundingRectWithSize:CGSizeMake(contentW, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil] context:nil];
     
    // 高度H
    CGFloat contentH = tmpRect.size.height;
    NSLog(@"调整后的显示宽度:%f,显示高度:%f"contentW,contentH);
    _content.frame = CGRectMake(00, contentW,contentH);

 

 

iOS_根据文字字数动态确定Label宽高

标签:

原文地址:http://www.cnblogs.com/wangxiaorui/p/5674458.html

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