使用第三方UITableView+FDTemplateLayoutCell计算cell行高注意点
现在很方便的计算单元格的行高大部分都是使用的第三方框架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行高注意点的更多相关文章
- UITableView+FDTemplateLayoutCell计算行高显示<二>
之前记录过一篇UITableView+FDTemplateLayoutCell计算行高不成功的博客... 传送门:http://www.cnblogs.com/pengsi/p/6571311.htm ...
- tableView计算动态行高的总结
研究tableView怎么计算动态行高研究了两天一直还不太会,今天最终做出来了想要的效果. 首先.我在网上搜集了非常多资料,各种大神的总结,然后開始看.研究.试验,基本思路都是一样的. 1.一定要将l ...
- 对tableView三种计算动态行高方法的分析
tableView是一个神奇的东西,可以这么说,就算是一个初学者如果能把tableView玩的很6,那编一般的iOS的需求都问题不大了.tableView是日常开发中用烂了的控件,但是关于tableV ...
- IOS第八天(5:UITableViewController新浪微博, 计算行高)
在 4 的 基础上重写 以下的方法 control #pragma mark - 代理方法 /** 计算单元格行高 */ - (CGFloat)tableView:(UITableView *)tab ...
- UITableView、UICollectionView行高/尺寸自适应
UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比较简单,首先必须设置estimatedRowHeight给出预估高度,设置rowHeight为UITabl ...
- iOS开发tips-UITableView、UICollectionView行高/尺寸自适应
UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比较简单,首先必须设置estimatedRowHeight给出预估高度,设置rowHeight为UITabl ...
- 20180428 xlVBA自动设置成绩条行高
'自动设置行高 传入工作表Sht 和 每页打印的行数RowsInOnePage Public Sub AutoSetRowHeight(ByVal Sht As Worksheet, Optional ...
- POI精确设置Excel的行高和列宽
EXCEL的行高度和列宽度单位是不一样的. 1,EXCEL列高度的单位是磅,Apache POI的行高度单位是缇(twip): 1英寸=72磅=25.4毫米=1440缇1磅=0.353毫米=20缇 P ...
- UITableView!别再用代码计算行高了(一)
你还在用代码去计算行高吗?你不感觉那种方式很low吗?从今天起,试着做些改变吧! 别给我讲你喜欢写代码的感觉,你就是要用代码去计算行高,那我这篇文章不适合你. 在讲解复杂内容之前,还是先学习简单的内容 ...
随机推荐
- Access数据库LIKE问题
access里like的通配符用法是这样:“?”表示任何单一字符: “*”表示零个或多个字符: “#”表示任何一个数字 有时候用%作为通配符不行,需要用*号作为通配符select * from tab ...
- java8学习之深入函数式接口与方法引用
函数式接口: 函数式接口[FunctionalInterface]是整个Lambda表达式的一个根源,换句话来说java8中的Lambda表达式要想彻底掌握,前提是要彻底理解好函数式接口,所以这次继续 ...
- Web Api(1)
由于在学习Web Api没有了解过MVC,觉得有些吃力.很多基础的东西都会一并记录下来. Web API 的意思是使用HTTP协议并通过网络调用的API. API的意思软件外部接口. 在实际的开发中, ...
- 报表开发工具!DevExpress Reporting v19.1:WPF/Web平台报表
行业领先的.NET界面控件DevExpress Reporting全新发布了v19.1版本,本文主要为大家介绍WPF.Web平台中DevExpress Reporting发布的一些新功能及增强部分功能 ...
- linux高级技巧:heartbeat+lvs
linux高级技巧:heartbeat+lvs Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 He ...
- ingress部署
# 手动部署 # 部署ingress-nginx 官方地址:https://github.com/kubernetes/ingress-nginx # 参考链接:https://www.jianshu ...
- python学习_新闻联播文字版爬虫(V 1.0版)
python3的爬虫练习,爬取的是新闻联播文字版网站 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' __author__ = 'wyf349' _ ...
- jquery unbind()方法 语法
jquery unbind()方法 语法 作用:unbind() 方法移除被选元素的事件处理程序.该方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行.ubind() 适用于任 ...
- react-native-swiper的Github地址
https://github.com/liyinglihuannan/react-native-swiper https://www.jianshu.com/p/4dba338ef37a(中文版
- vue模板语法上集
模板语法上集 1.1 插值 1.1.1 文本 {{msg}} 1.1.2 html 使用v-html指令用于输出html代码 1.1.3 属性 HTML属性中的值应使用v-bind指令 1.1.4 表 ...