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;       // 行高
    }
  • 相关阅读:
    C# 从类库中获取资源图片,把图片资源保存到类库中
    C# Bitmap/png转成jpg格式,压缩图片
    C# 窗体间传值(使用委托与自定义事件)
    C# Image与Base64编码互转函数
    简单Tomcat HTTP RPC框架
    Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
    Java序列化机制和原理
    攻破JAVA NIO技术壁垒
    代理模式(Proxy)
    Java序列化与反序列化
  • 原文地址:https://www.cnblogs.com/hacjy/p/5160446.html
Copyright © 2011-2022 走看看