版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/PianZhideNanRen/article/details/55049208
最近又开始新项目的开发,在UI架构的时候又出现了这个问题:每个APP可以说都有NavigationController,在Nav之内的Controller上首个控件如果是UIScrollView则会出现向下偏移64的问题,今天不知道怎么就是没想起来这个钻到牛角尖了,搞了半天才突然发现解决方法。
原因
在iOS7之前是没有这个问题的,后来苹果更新出自动适配,在控制器里增加了一个新属性automaticallyAdjustsScrollViewInsets默认为YES,通过字面意思大家应该就发现了,开启ScrollView自动调整,就是如果是在nav下的ScrollView会自动向下偏移64,这样就造成了我的这个问题。
解决
第一种(推荐)
不让系统自动适配,我们自己来automaticallyAdjustsScrollViewInsets设置成NO。
第二种
nav.translucent 把原点下移64 和 ios6一样 (一般不用这个)
第三种
// 设置CGRectZero从导航栏下开始计算
if ([selfrespondsToSelector:@selector(setEdgesForExtendedLayout:)]) {
self.edgesForExtendedLayout =UIRectEdgeNone;
}