UITableView Cell 自动布局遇到的坑。

在使用UITableView自动布局时,遇到两个问题:1. 设置estimatedRowHeight在0到1之间会导致崩溃,解决方法是设置为大于1的值。2. 在iOS 11以下系统,当有sectionView时,刷新后sectionView位置会乱跑,解决方法是保存Cell高度,避免重复计算,减少性能消耗和卡顿。
摘要由CSDN通过智能技术生成

第一坑

最近在项目中使用了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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值