关闭

UITableView-FDTemplateLayoutCell缓存cell高度时,cell重叠高度为0的问题解决

标签: 缓存cell高度FDTemplateLayoutCell
833人阅读 评论(0) 收藏 举报
分类:

使用UITableView-FDTemplateLayoutCell框架缓存cell高度

1. UITableView-FDTemplateLayoutCell框架集成

使用cocoapods导入:pod 'UITableView+FDTemplateLayoutCell'


2. git源码链接:https://github.com/forkingdog/UITableView-FDTemplateLayoutCell


3.使用

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return [tableView fd_heightForCellWithIdentifier:@"identifer" cacheByIndexPath:indexPath configuration:^(id cell) {
        // 配置 cell 的数据源,和 "cellForRow" 干的事一致,比如:
        cell.entity = self.feedEntities[indexPath.row];
    }];
}
或:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    Entity *entity = self.entities[indexPath.row];
    return [tableView fd_heightForCellWithIdentifier:@"identifer" cacheByKey:entity.uid configuration:^(id cell) {
        // configurations
    }];
}

使用UITableView-FDTemplateLayoutCell框架缓存cell高度的好处不再多说,下面说一下,可能遇到的问题

a. 运行崩溃报错 NSAssert(templateCell != nil, @"Cell must be registered to table view for identifier - %@", identifier);

原因:官方是这么说明的:

  • 每个 UITableViewCell ReuseID 一一对应的 template layout cell这个 cell 只为了参加高度计算,不会真的显示到屏幕上;它通过 UITableView 的 -dequeueCellForReuseIdentifier: 方法 lazy 创建并保存,所以要求这个 ReuseID 必须已经被注册到了 UITableView 中,也就是说,要么是 Storyboard 中的原型 cell,要么就是使用了 UITableView 的 -registerClass:forCellReuseIdentifier: 或 -registerNib:forCellReuseIdentifier:其中之一的注册方法。

解决:意思就是说你需要注册cell对应的identifier。

b.结合masonry 搭建页面时, 设为固定高度是没有问题的,但是使用框架缓存cell高度时,cell重叠所有cell高度都为0。

原因:计算cell高度时,因Y方向上约束不完善,无法确定cell的高度。

解决:设置约束时,由上到下设置,最后一个需要设置距底部边距。一定能让系统确定这个cell的高度



0
0
查看评论

UITableView+FDTemplateLayoutCell 框架学习

UITableView+FDTemplateLayoutCell 框架学习
  • qq_23292307
  • qq_23292307
  • 2017-03-17 18:30
  • 979

自动计算cell高度

首先申明一下我的这个代码是把第三方的UITableView+FDKeyedHeightCache.m 和 UITableView+FDTemplateLayoutCell抽离出来的,抽离后我个人认为比较简单,而且便于理解 1.先上一个图片 自定布局.gif 2.基本的代码是 ...
  • qq_30513483
  • qq_30513483
  • 2016-06-14 19:52
  • 1149

四种方法实现UITableView的cell高度自动计算

UITableview是iOS开发中使用最频繁的一个控件,在实际开发中,我们经常需要定制cell,让cell显示图片、文字等。由于cell包含的图片和文字是根据服务器返回的数据进行填充的,这就导致cell包含的内容的高度是不定的。 四种方法计算cell的高度: 1、iOS8的自动计算机制,需要...
  • u011043997
  • u011043997
  • 2016-04-27 17:49
  • 23663

iOS UITableView+FDTemplateLayoutCell 配合AutoLayout分分钟教你实现类似微信朋友圈的动态高度自适应

UITableView里面的Cell固定高度那是基本不可能了,很多功能和界面都会涉及到高度自适应,而且电商类的尤其普遍,之前都是自己算啊算,代码写的非常多,逻辑还没写,光这布局UI和高度计算都能接近1000了,写完之后关键出点Bug整个人都不好了 当时的是这样的: 突然在github上看到UIT...
  • Deft_MKJing
  • Deft_MKJing
  • 2016-06-02 19:35
  • 11710

Masonry和UITableView-FDTemplateLayoutCell结合使用时遇过的坑

前言 纯代码自动布局,首选框架当然是Masonry,这是一个很赞的框架。 UITableView-FDTemplateLayoutCell也是一个很高端且很实用的框架。 那么,很多时候我们在同一个项目中需要同时使用着两个框架。其实这两个框架同时使用并没有什么特殊技巧,使用起来也很简单。不会用的童鞋可...
  • gang544043963
  • gang544043963
  • 2016-08-29 15:12
  • 3031

UITableView-FDTemplateLayoutCell缓存cell高度时,cell重叠高度为0的问题解决

UITableView-FDTemplateLayoutCell缓存cell高度时,cell重叠高度为0的问题解决
  • qq_25303213
  • qq_25303213
  • 2016-08-29 17:33
  • 833

iOS 使用断言NSAssert()调试程序错误

本文链接:http://blog.sina.com.cn/s/blog_75992b660101kbj2.html NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,...
  • u010856537
  • u010856537
  • 2016-03-04 10:35
  • 379

cell高度的缓存2——利用模型属性缓存

之前的一篇文章(http://blog.csdn.net/u010105969/article/details/53203860)介绍了利用字典缓存cell高度的方法,可还是略显复杂,因为要多定义一个字典,还得注意字典数据的清除。我们如果利用已有的模型进行cell高度的缓存会更简单些。 我们要利用...
  • u010105969
  • u010105969
  • 2016-11-17 18:20
  • 266

UITableView自动计算cell高度并缓存

一.自动计算高度: 在iOS8之前,如果UITableViewCell的高度是动态的,如果想要显示正确的话,我们需要在下面这个UITableView的代理方法中,返回每一行的精确高度:- (CGFloat)tableView:(UITableView *)tableView heightForRo...
  • ideaspress
  • ideaspress
  • 2016-10-25 15:31
  • 744

TableViewCell常见的小问题

用TableViewCell经常遇到小问题搞到整个程序崩溃。 最常见的错误:unable to dequeue a cell with identifier cell - must register a nib or a class for the identifier or connect a...
  • u010962810
  • u010962810
  • 2013-08-03 17:14
  • 6267
    个人资料
    • 访问:21758次
    • 积分:631
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:24篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论