解决“带有导航控制器中加入UIScrollView后,UIScrollView向下偏移问题”

一、问题描述

       如果在带有导航控制器的控制器中加入UIScrollView,我们可以发现UIScrollView的高度自动增加了64(正好是一个导航栏加上状态栏高度),然后在UIScrollView在加子视图,会造成子视图显示向下偏移了64的高度,如下图:

效果图:

二、解决方法

方法一:在控制器viewDidLoad方法中加入  self.automaticallyAdjustsScrollViewInsets = NO;

  看这个UIViewController的这个属性你就明白了,此属性默认为YES,这样UIViewController下如果只有一个UIScollView或者其子类,那么会自动留出空白,让scollview滚动经过各种bar下面时能隐约看到内容。但是每个UIViewController只能有唯一一个UIScollView或者其子类,如果超过一个,需要将此属性设置为NO,自己去控制留白以及坐标问题。

或在IB中把automaticallyAdjustsScrollViewInsets勾选去掉,如图:

方法二:在控制器viewDidLoad方法中加入 self.navigationController.navigationBar.translucent = NO;

或是在IB中,设置导航控制器的导航条的translucent属性,如图:

效果图:

其他解决方法就不补充,选择何种解决方案看需求~~~

原文地址:https://www.cnblogs.com/LyChen/p/5015324.html