iOS 开发每天分享优质文章iOS bug修复

iOS 导航栏偏移问题(只需两个属性就可以解决)

2019-04-09  本文已影响29人  叩首问路梦码为生

默认加载一个tableview,加上到导航栏,看看显示的效果。

image

在看看层级关系

image

我们可以看出tableview是从(0,0)坐标开始计算,但是内容的坐标是从(0,64)开始的。

这是为什么呢?这时候我们需要用到相关属性:

适配iOS11的偏移


if (@available(iOS 11.0, *)) {
            _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        }else {
            self.automaticallyAdjustsScrollViewInsets = NO;
        }

我们看一下图层添加这两个属性后,图层变成怎样:

image

tableview的frame并没有变化依然是从屏幕的(0,0)开始,但是内容的偏移发生了变化,也是从(0,0)开始。这个时候我们想让tableview正常显示就需要对tableview的frame进行改变(0,64)

添加这个两个属性,VC默认是全屏布局的。当你添加这两个的任何一个,VC的布局就会变成(0,64)布局,看看效果何如。


self.edgesForExtendedLayout = UIRectEdgeNone;

self.navigationController.navigationBar.translucent = NO;

image image
上一篇下一篇

猜你喜欢

热点阅读