现在很方便的计算单元格的行高大部分都是使用的第三方框架UITableView+FDTemplateLayoutCell,不知道你在使用这个框架的时候有没有遇到和我一样的问题,比如:

在这样计算cell的高度的时候崩溃了.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return [tableView fd_heightForCellWithIdentifier:PersonDataCellIdentify configuration:^(id cell) {
[self configurePersonDataTableViewCell:cell atIndexPath:indexPath];
}];
}

崩溃原因是必须注册cell......然后反复检查代码.

1.自己明明都有写注册cell的代码,,identify也木有错误,就是不知道为什么崩溃;

2.以为是cell的布局有问题,导致不能自己计算单元格的行高;

其实原因很简单,不知道你得问题是啥,总之我的问题就是一行代码的位置问题.

原因就是:

    self.tableView.tableFooterView = [[UIView alloc]init];这句代码在注册cell之前,导致的崩溃.
因为你在设置表视图的tableFooterView的时候,他就会走tableView的数据源和代理方法,而这个时候你还没有注册cell,导致他认为你还没有注册cell,导致崩溃.
#pragma mark - 设置界面

- (void)setUI {

    self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(, , K_SCREEN_WIDTH, K_SCREEN_HEIGHT) style:UITableViewStylePlain];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.separatorInset = UIEdgeInsetsMake(, , , );
self.tableView.tableFooterView = [[UIView alloc]init]; // 注册cell
// [_tableView registerNib:[UINib nibWithNibName:@"AddTableViewCellWithLabel" bundle:nil] forCellReuseIdentifier:ADD_LABEL_CELL_ID];
[_tableView registerClass:[PersonDataCell class] forCellReuseIdentifier:PersonDataCellIdentify];
[self.view addSubview:self.tableView];
}

解决办法就是: 先注册cell,再设置tableFooterView就好了....

#pragma mark - 设置界面

- (void)setUI {

    self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(, , K_SCREEN_WIDTH, K_SCREEN_HEIGHT) style:UITableViewStylePlain];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.separatorInset = UIEdgeInsetsMake(, , , ); // 注册cell
// [_tableView registerNib:[UINib nibWithNibName:@"AddTableViewCellWithLabel" bundle:nil] forCellReuseIdentifier:ADD_LABEL_CELL_ID];
[_tableView registerClass:[PersonDataCell class] forCellReuseIdentifier:PersonDataCellIdentify];
self.tableView.tableFooterView = [[UIView alloc]init];
[self.view addSubview:self.tableView];
}

持续记录自己在工作中遇到的问题和解决方法,希望学到更多的知识.

使用第三方UITableView+FDTemplateLayoutCell计算cell行高注意点的更多相关文章

  1. UITableView+FDTemplateLayoutCell计算行高显示<二>

    之前记录过一篇UITableView+FDTemplateLayoutCell计算行高不成功的博客... 传送门:http://www.cnblogs.com/pengsi/p/6571311.htm ...

  2. tableView计算动态行高的总结

    研究tableView怎么计算动态行高研究了两天一直还不太会,今天最终做出来了想要的效果. 首先.我在网上搜集了非常多资料,各种大神的总结,然后開始看.研究.试验,基本思路都是一样的. 1.一定要将l ...

  3. 对tableView三种计算动态行高方法的分析

    tableView是一个神奇的东西,可以这么说,就算是一个初学者如果能把tableView玩的很6,那编一般的iOS的需求都问题不大了.tableView是日常开发中用烂了的控件,但是关于tableV ...

  4. IOS第八天(5:UITableViewController新浪微博, 计算行高)

    在 4 的 基础上重写 以下的方法 control #pragma mark - 代理方法 /** 计算单元格行高 */ - (CGFloat)tableView:(UITableView *)tab ...

  5. UITableView、UICollectionView行高/尺寸自适应

    UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比较简单,首先必须设置estimatedRowHeight给出预估高度,设置rowHeight为UITabl ...

  6. iOS开发tips-UITableView、UICollectionView行高/尺寸自适应

    UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比较简单,首先必须设置estimatedRowHeight给出预估高度,设置rowHeight为UITabl ...

  7. 20180428 xlVBA自动设置成绩条行高

    '自动设置行高 传入工作表Sht 和 每页打印的行数RowsInOnePage Public Sub AutoSetRowHeight(ByVal Sht As Worksheet, Optional ...

  8. POI精确设置Excel的行高和列宽

    EXCEL的行高度和列宽度单位是不一样的. 1,EXCEL列高度的单位是磅,Apache POI的行高度单位是缇(twip): 1英寸=72磅=25.4毫米=1440缇1磅=0.353毫米=20缇 P ...

  9. UITableView!别再用代码计算行高了(一)

    你还在用代码去计算行高吗?你不感觉那种方式很low吗?从今天起,试着做些改变吧! 别给我讲你喜欢写代码的感觉,你就是要用代码去计算行高,那我这篇文章不适合你. 在讲解复杂内容之前,还是先学习简单的内容 ...

随机推荐

  1. 正则表达式 Regular expression为学习助跑

    这是一个Regular expression的铁路图(至少我现在是这么称呼的)的图形化界面帮助检验和理解我们所写的Regular expression是否正确. 1.官网 :https://regex ...

  2. 下载好的vue项目如何在自己电脑环境上运行,步骤!!

    本文链接:https://blog.csdn.net/qq_39309900/article/details/84837659首先第一步,需要安装node.js 下载地址:https://nodejs ...

  3. unittest 详解

      内容总括 一. 初始化 setUp 与 tearDown setUpClass 与 tearDownClass unittest.main(verbosity=0/1/2) 二. 执行顺序 按顺序 ...

  4. TCP/IP——内网IP

    版权声明:本文系博主原创文章,转载或引用请注明出处. 1)背景 REC 1918留出了3块IP地址空间(1个A类地址段,16个B类地址段,256个C类地址段)作为私有的内部使用的地址. 在这个范围内的 ...

  5. java合并数组的几种方法,stream流合并数组

    一.实例代码 package cc.ash; import org.apache.commons.lang3.ArrayUtils; import java.lang.reflect.Array; i ...

  6. regex正则

    1 正则表达式基本语法 两个特殊的符号^和$.他们的作用是分别指出一个字符串的开始和结束.例子如下: ^The:表示所有以”The”开始的字符串(”There”,”The cat”等): of des ...

  7. Acwing-196-质数距离(素数区间筛法)

    链接: https://www.acwing.com/problem/content/198/ 题意: 给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C ...

  8. Parallels Desktop虚拟机无法关机提示“虚拟机处理器已被操作系统重置”

    如果你在使用PD的时候遇到了这样子的弹窗,恭喜你篇博文可以帮助你,因为我刚刚也遇到了这个问题.如果有帮助可以点一下推荐按钮. 针对Windows电脑 启动虚拟机 创建快照 使用管理员权限运行命令提示符 ...

  9. removeProp(name)

    removeProp(name) 概述 用来删除由.prop()方法设置的属性集 随着一些内置属性的DOM元素或window对象,如果试图将删除该属性,浏览器可能会产生错误.jQuery第一次分配un ...

  10. position:fixed 失效问题

    为了提升动画性能,在body上加上了transform:translate3d(0,0,0) 但是3d使得新建了一个层(具体原因请参考:高性能css动画),导致position:fixed不在当前的层 ...