控件UILabel自适应高度和自动换行

在开发过程中,文字框的大小位置对于产品美观影响很大,如果布局写死,将无法适配各种机型,稍微不小心就会出现文字显示不全的bug;那么如何动态确定文字框的大小和布局呢。这个在项目中是非常实用的

//初始化label ,最先的尺寸不用纠结 

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];  

//设置自动行数与字符换行  

[label setNumberOfLines:0];  

label.lineBreakMode = UILineBreakModeWordWrap;   

// 定义一个测试字串  

 NSString *str = @"这是一个测试哈哈哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊";  

UIFont *font = [UIFont fontWithName:@"Arial" size:12];  

//设置一个行高上限,作为下面方法的一个参数  

CGSize size = CGSizeMake(320,2000);  

//计算实际frame大小,并将label的frame变成实际大小  

 CGSize labelsize = [str sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];  

//最后再设置label的大小

[label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)]; 

着就是可以实现label自适高度和自动跨行



转载于:https://my.oschina.net/applexu/blog/617769

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值