iOS开发之UITableView+FDTemplateLayoutCell配合Masonry使用

  • 前言:自适应高度的处理有如下:
    1.使用系统提供方法
    2.使用第三方+XIB(AutoLayout)
    3.使用第三方+Masonry(纯代码)
  • 框架下载:
    Masonry
    UITableView+FDTemplateLayoutCell
  • 本文基于第三方框架UITableView+FDTemplateLayoutCell配合Masonry使用进行简要讲解,如果需要配合Xib进行使用的,请参阅如下文章:

1.导入文件

Paste_Image.png

2.在viewDidLoad打开开关和注册

Paste_Image.png
- (void)viewDidLoad {
    [super viewDidLoad];

    
    [self AccessNetworkForDateMethod];
    
    self.view.backgroundColor = [UIColor lightGrayColor];
    self.ZTableView = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds];
    self.ZTableView.delegate = self;
    self.ZTableView.dataSource =self;
    [self.view addSubview:self.ZTableView];
    
#warning  log日志是否输出
    self.ZTableView.fd_debugLogEnabled = YES;
    
    
#warning 注册Cell类,无论是纯代码的Cell,还是Xib的cell,否则会报错
    [self.ZTableView registerClass:[ZTableViewCell class] forCellReuseIdentifier:@"myCell"];

}

3.在返回高度方法中预缓存高度值

Paste_Image.png

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    
#warning 预缓存高度
    return [self.ZTableView fd_heightForCellWithIdentifier:@"myCell" cacheByKey:indexPath configuration:^(ZTableViewCell *cell) {
        
        cell.cellModel = self.listArry[indexPath.row];
        
    }];
    
    
   // [self.ZTableView fd_heightForCellWithIdentifier:@"myCell" cacheByKey:indexPath configuration:^(id cell) {
        
//    }];
}


4.自定义Cell类注意

Paste_Image.png
-(void)initCell{

    self.sumLab = [[UILabel alloc]init];
    
#warning 所有的控件都是放置在"self.contentView"
    [self.contentView addSubview:self.sumLab];
    
    self.sumLab.text =@"测试阶段";
#warning Lable行数限制设为0
    self.sumLab.numberOfLines = 0;
    
#warning 使用Masonry设置高度大小位置,无论如何,基于Bottom这个点是不能忽略的,位置也都是基于self.contentView
    [self.sumLab mas_makeConstraints:^(MASConstraintMaker *make) {
        
        make.top.mas_equalTo(self.contentView.mas_top).offset(5);
        make.left.mas_equalTo(self.contentView.mas_left).offset(5);
        make.right.mas_equalTo(self.contentView.mas_right).offset(-5);
        make.bottom.mas_equalTo(self.contentView.mas_bottom).offset(-5);

    }];

}

运行效果如下:


非代码挖坑注意:

如果发现代码运行在不同Xcode版本上,发现高度无法自适应,请替换最新的UITableView+FDTemplateLayoutCell框架,就能修正此问题.

demo下载:

https://github.com/OwenJoe/cellHeight.git

挖坑过程碰到很多问题,参阅文章如下:
http://blog.sunnyxx.com/2015/05/17/cell-height-calculation/
http://www.jianshu.com/p/385e0bfebba2
http://www.jianshu.com/p/ca11e0e07de4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容