解决iOS tableView 控件顶部留白问题

最近在项目中很奇怪的发现表单控件顶部莫名其妙的会留出一段空白,使第一个 cell 不能置顶,研究发现该情况主要由于系统内部自动布局功能引起的。tableView 继承自scrollerView,打印tableView 的contentInset 属性可以发现其值为 (64,0,0,0),多了一个导航条的高度,这是因为在自动布局情况下系统自动帮我们统计了导航条高度,依照这个思路,我们可以从这三个方面着手解决

方案一:

认为改变 contentInset 的值,将其设为 uiedgeinsetzero ,注意需要在系统布局完成之后设置该值,推荐写在 viewdidappear和viewdielayout

方案二:

设置  self.automaticallyAdjustsScrollViewInsets = NO;  该方法禁止系统自动调整  contentInset 的值

方案三:

设置  self.navigationController.navigationBar.translucent = NO;  设置导航条的透明属性,可以看到该值设置完成后 contentInset 处于归零状态,但是 界面正式显示区域 和 导航条之间会出现一条缝隙,谨慎使用。

注意:

以上三个方法都需要在控制器界面布局完成后使用,推荐写在 viewdidload和viewwillappear里面

你可能感兴趣的:(解决iOS tableView 控件顶部留白问题)