第一坑
最近在项目中使用了UITableView的自动布局如下
_tableView.estimatedRowHeight = 10;
_tableView.rowHeight = UITableViewAutomaticDimension;
实用如上代码的第一点坑,是estimatedRowHeight的只不能再0到1之间(不包括0 ,但是包括1) 如果你在设置的时候后不小心设置到了在0~1之间的数字,恭喜你,你会在[tableView reloadDate]的时候崩溃, 解决办法要设置在大约1的情况下才能正常运行。
第二坑
在时候用自动化布局运行在IOS11以上的系统上你根本不会发现相应的问题,UI布局,各方面展示都是正常的,跑起来你也会觉得舒心,但是在IOS11以下跑这段代码,在[tableView reloadDate] 如果你没有在上面添加Scetion还好,问题也不会出现,但是当你有要加入sectionView的需求的时候在刷新你会发现SectionVIew 就像一个不定的家伙,在reloadData结束之后 他的位置乱跑,在任何地方都可以出现,页面出现闪烁。
这个问题完全是你使用了,UITableView的自适应高度造成的,这个问题要就解决你需要在自动布局的代理里面本地保存下来Cell的高度,不让他每次都要计算高度,这样就不会出现闪烁。 这样就需要你保存高度,争取只让他们自动算高度一次,不要每次都要自动算,如果每次都要自动算,第一性能消耗会大,表有事也会出现卡顿的现象,
保存Cell高度实用代理
-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIn