之前一直没有用过FDTemplateLayoutCell,因为最近项目有需要动态计算高度的内容,于是本着省事的原则,采取第三方框架来解决掉这事。翻了一会,发现这个框架非常的强大,就立即采用了。
简略的看了一下官方提供的文档后,就上手了,流程很简单,注册一个cell(必须要这样注册一个cell,也可以registerClass)
[self registerNib:[UINib nibWithNibName:@"Cell" bundle:nil] forCellReuseIdentifier:reuseIdentifier];
然后在heightForRowAtIndexPath方法里
return [tableView fd_heightForCellWithIdentifier:reuseIdentifier cacheByIndexPath:indexPath configuration:^(id cell) {
[self configCell:cell indexPath:indexPath];
}];
就完成了高度的自动计算。
但是显然我并没有成功计算,日志打印内容:[FDTemplateLayoutCell] Warning once only: Cannot get a proper cell height (now 0) from '- systemFittingSize:'(AutoLayout). You should check how constraints are built in cell, making it into 'self-sizing' cell.
从这上面看到,我的约束似乎是有问题的。于是我又从仔细检查了我的约束。
图中指示的位置,我之前并没有约束,原本我是想到我的上面的控件是固定了高度的,不需要这个约束,但是问题也就在这里了。FDTemplateLayoutCell的计算机制需要对上下都要约束到,这也是我之前的高度计算无效的原因。
并不是什么复杂的问题,但是也让我好找了,记录下来,希望我的问题能为您提供帮助。