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

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( 0 0 , 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( 0 0 , contentW,contentH);

 

 

转载于:https://www.cnblogs.com/wangxiaorui/p/5674458.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值