解决“带有导航控制器中加入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属性,如图:
效果图:
其他解决方法就不补充,选择何种解决方案看需求~~~