现在很方便的计算单元格的行高大部分都是使用的第三方框架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. Access数据库LIKE问题

    access里like的通配符用法是这样:“?”表示任何单一字符: “*”表示零个或多个字符: “#”表示任何一个数字 有时候用%作为通配符不行,需要用*号作为通配符select * from tab ...

  2. java8学习之深入函数式接口与方法引用

    函数式接口: 函数式接口[FunctionalInterface]是整个Lambda表达式的一个根源,换句话来说java8中的Lambda表达式要想彻底掌握,前提是要彻底理解好函数式接口,所以这次继续 ...

  3. Web Api(1)

    由于在学习Web Api没有了解过MVC,觉得有些吃力.很多基础的东西都会一并记录下来. Web API 的意思是使用HTTP协议并通过网络调用的API. API的意思软件外部接口. 在实际的开发中, ...

  4. 报表开发工具!DevExpress Reporting v19.1:WPF/Web平台报表

    行业领先的.NET界面控件DevExpress Reporting全新发布了v19.1版本,本文主要为大家介绍WPF.Web平台中DevExpress Reporting发布的一些新功能及增强部分功能 ...

  5. linux高级技巧:heartbeat+lvs

    linux高级技巧:heartbeat+lvs   Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 He ...

  6. ingress部署

    # 手动部署 # 部署ingress-nginx 官方地址:https://github.com/kubernetes/ingress-nginx # 参考链接:https://www.jianshu ...

  7. python学习_新闻联播文字版爬虫(V 1.0版)

    python3的爬虫练习,爬取的是新闻联播文字版网站 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' __author__ = 'wyf349' _ ...

  8. jquery unbind()方法 语法

    jquery unbind()方法 语法 作用:unbind() 方法移除被选元素的事件处理程序.该方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行.ubind() 适用于任 ...

  9. react-native-swiper的Github地址

    https://github.com/liyinglihuannan/react-native-swiper https://www.jianshu.com/p/4dba338ef37a(中文版

  10. vue模板语法上集

    模板语法上集 1.1 插值 1.1.1 文本 {{msg}} 1.1.2 html 使用v-html指令用于输出html代码 1.1.3 属性 HTML属性中的值应使用v-bind指令 1.1.4 表 ...