UITableView 顶部空白总结

UITableView 顶部空白总结

    开发中总存在适配问题,而tableView最容易出现顶部留白问题,我明明设置好的,为啥tableView偏移了,心中十万个CNM。不要担心,一般由以下问题导致。

    1.tableView的样式为Grouped [空白区高度:40]。

解决:设置tableHeaderView的view高度为0.01。

    2.设置了tableView的header高度为0或者未设置[空白区高度:40]。

原因:由于系统tableView初始化的时候会将header高度设置为40,不懂为啥设置为0的时候都会设置为40。

解决:将header的高度设置为0.001f (如果设置为0则会系统默认为40)

    3.Controller的automaticallyAdjustsScrollViewInsets属性设置问题[空白区20 或40(iPhone X)]。

原因:当Controller中有唯一ScrollView或器子类时【多个scrollView遮挡问题】,控制器会自动根据是否有导航栏和状态栏来设置scrollView的Inset边距,以达到最好的显示效果,防止遮挡。比如没有导航栏,会默认将scrollView从状态栏的bottom开始布局,所以就留下状态栏图层下为空白的,这就是automaticallyAdjustsScrollViewInsets的效果。

解决:

iOS7~iOS10

 将Controller的self.automaticallyAdjustScrollViewIneset 置为NO(默认为yes)// 不用自动适应,直接将其置为全屏布局。

>= iOS11

 self.contentInsetAdjustmentBehavior = XXXXNever(默认为XXXAutomatic) ;

    4.tableView设置top约束布局基于safeArea 同时将self.automaticallyAdjustScrollViewInset设置为NO,就会出现空白[空白区20 或40(iPhone X)]

解决同3;

    5.如果将导航栏的translucent设置为NO; contentInset会恢复为zero, 就会多出64空白。

综合解决:以上都无法解决可以尝试

手动将contentInset 设置为Zero,但是注意需要在viewDidApear 何 wiewDidLayout中设置有效。

    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值