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;       // 行高
    }
  • 相关阅读:
    Redis指令(2) ------String
    Redis指令(1) ------常用指令
    Redis数据类型
    Python set集合
    Python random 模块
    Python random 模块
    Python time 模块
    Python sys模块
    Python 递归函数
    Python 局部变量和全局变量
  • 原文地址:https://www.cnblogs.com/hacjy/p/5160446.html
Copyright © 2011-2022 走看看