zoukankan      html  css  js  c++  java
  • 原生的UITableViewCell高度自适应,textLabel自动换行显示

    /*
     * 设置子项cell
     **/
    - (UITableViewCell *)getChildCell:(UITableView *)tableView and:(NSIndexPath *)indexPath {
        CourseWareModel * childModel = [self isChild:indexPath];
        UITableViewCell * cell;
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
        }
        //设置Cell不可点击
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.textLabel.text = childModel.courseWareName;
        cell.textLabel.font = [UIFont systemFontOfSize:14];
        cell.textLabel.textColor = [PlistResourceUtil getColor:@"courselist_name"];
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping;
        //显示最右边的箭头
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        
        //获得当前cell高度
        CGRect frame = [cell frame];
        //设置label的最大行数
        cell.textLabel.numberOfLines = 10;
        CGSize size = CGSizeMake(300, 1000);
        CGSize labelSize = [cell.textLabel.text sizeWithFont:cell.textLabel.font constrainedToSize:size lineBreakMode:NSLineBreakByClipping];
        cell.textLabel.frame = CGRectMake(cell.textLabel.frame.origin.x, cell.textLabel.frame.origin.y,labelSize.width, labelSize.height);
        //计算出自适应的高度
        frame.size.height = labelSize.height+16;
        cell.frame = frame;
        
        return cell;
    }

    然后在heightForRowAtIndexPath方法中返回cell的height

    #pragma mark - 大小样式设置
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        if ([self isGroup:indexPath]) {
            CourseGroupCell * cell = [self getGroupCell:tableView and:indexPath];
            CGFloat height = cell.frame.size.height;
            return height;
    //        return 48;   // 分组高
        }
        UITableViewCell * cell = [self getChildCell:tableView and:indexPath];
        CGFloat height = cell.frame.size.height;
        return height;
    //    return 40;       // 行高
    }
  • 相关阅读:
    小程序动态添加input(一)
    vue样式穿透
    小程序判断用户是否授权位置信息
    【超详细】MySQL学习笔记汇总(四)之排序查询
    【超详细】MySQL学习笔记汇总(三)之进阶1、2测试
    【超详细】MySQL学习笔记汇总(二)之条件查询
    【超详细】MySQL学习笔记汇总(一)之基础查询
    【超详细】MakeDown(Typora)+PicGo+Gitee实现图床
    JavaDOC生成文档
    学习Hive遇到的问题
  • 原文地址:https://www.cnblogs.com/hacjy/p/5160446.html
Copyright © 2011-2022 走看看