tableview抖动

我在iOS开发中碰到的一些坑

问题记录 编写了一个可折叠的tableviewCell 但是后来发现展开或者收起的时候会发生抖动的问题,怅恨久之,终有良策。

解决方案 iOS11后系统默认开启Self-Sizing,包括Headers和Footers,如果项目中没有使用estimatedRowHeight iOS11下会有奇怪的问题。所以在Tableview初始化的地方加入下面的代码

self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;

问题记录 iOS10添加了隐私权限提示,但是当我们拒绝开启权限后,再次调用就会出现崩溃的问题,为了避免这个问题,我们可以在调用设备前判断是否开启了调用权限。

解决方案 调用设备前判断是否开启了调用权限。

cellForRowAtIndexPath 和 heightForRowAtIndexPath 谁先调用,谁后调用?
如果你的tableview设置了预估的行高
cellForRowAtIndexPath 在 heightForRowAtIndexPath 之前

如果你的tableview没有设置预估的行高
tableView首先会把所有IndexPath的heightForRowAtIndexPath轮训一遍以计算contentSize。而后按照情况1的顺序。