zoukankan      html  css  js  c++  java
  • 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;
        }
    }

  • 相关阅读:
    Web网站架构演变—高并发、大数据
    企业级Nginx Web服务优化实战
    初始化mysql数据库时提示字符编码错误的解决办法
    linux下logrotate 配置和理解
    Centos 5.2下安装多个mysql数据库
    编译安装 mysql 5.5,运行 cmake报错Curses library not found
    Centos 5.5 编译安装mysql 5.5.9
    理解索引的基数
    centos下yum安装mysql5.6后,无法启动 MySQL Daemon failed to start
    如何从MySQL官方Yum仓库安装MySQL5.6
  • 原文地址:https://www.cnblogs.com/niit-soft-518/p/4026118.html
Copyright © 2011-2022 走看看