代码示例运行环境为 IOS10,Swift3.0
这是自从我开发以来一直困扰我的一个问题,我一直想通过一个完美的方式来解决,但是并不存在。之前用过一个库 UITableView+FDTemplateLayoutCell,这个库应该说很好的,但是却没有swift版本,之后我发现了 文顶顶 的博客,帮我很好的解决了这个问题。
基本的思路是:
假设tableView的dataSource是一个数组为dataArray,那么你就定义一个Array,可以命名为cellFrameArray,cellFrameArray里存储着字典,字典里存储着cell中每一个控件的高度,那么高度又是如何得来的,是在tableView刷新之前对dataArray里的数据计算高度的结果。在tableview的返回cell的代理方法中,就可以将cellFrameArray传给cell,cell根据这个frame数组使用代码来进行内部控件的布局,而不是通过约束布局。
这样说可能不是很清楚,可以直接看文顶顶的博客 iOS开发UI篇
如果有任何疑问或者是文中存在技术性错误,请留言,我会尽快回复或者更改。