UITableView cell中label自动换行和自定义label自动换行

换行的前提必须是有足够的高度 才能换 否则不显示超出部分 

所以,在设置label换行的时候 要考虑cell的高度,cell的高度也要变化,废话不多说,来段代码:

cell.label.text=[dict objectForKey:@"info"];
    cell.label.numberOfLines=0;  //可多行显示
    cell.label.lineBreakMode=NSLineBreakByWordWrapping;//拆行
设置label的高度
[self changeLabelHeight:cell.label :cell.label.text]; 

//设置label的高度
-(void)changeLabelHeight:(UILabel *)label : (NSString *)string{
    NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:15]};
    //计算UILabel字符显示的实际大小
     size=[string boundingRectWithSize:CGSizeMake(145, 1000)//最大限制的宽和高
                                          options:NSStringDrawingUsesLineFragmentOrigin
                                       attributes:attribute
                                          context:nil].size;
    //重设UILabel实例的frame
    [label setFrame:CGRectMake(label.frame.origin.x, label.frame.origin.y, size.width, size.height)];
   
    NSLog(@"%lf",size.height);
}
//设置cell的高度
//设置行高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:15]};
    NSDictionary *dict=[self.listData objectAtIndex:indexPath.row+1];
//获取数据,根据数据来确定长和高
   CGSize size=[[dict objectForKey:@"info"] boundingRectWithSize:CGSizeMake(156, 1000)//最大限制宽和高
                              options:NSStringDrawingUsesLineFragmentOrigin
                           attributes:attribute
                              context:nil].size;
        NSLog(@"row heigth :%lf",size.height+20);
    if (size.height+20<58) {
        return 58;
    }else{
       return size.height+20;
    }
}

 

转载于:https://www.cnblogs.com/niit-soft-518/p/4026118.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值