关于tableView的那些坑(一)—— automaticallyAdjustsScrollViewInsets属性

     

  最近用tabbar来切换控制器,用childViewController来实现多控制器管理,多列表切换,在子控制器中设置了automaticallyAdjustsScrollViewInsets属性为NO,但是在切换的父控制器时候,切回来的时候还是会自动往下掉,花了点时间,发现自己对这个属性理解的不够好:

 

  

 

  往下掉其实就是控制器的automaticallyAdjustsScrollViewInsets这个属性在捣鬼,有导航栏的scrollView会默认把scrollView的显示往下移动64,就是导航栏的高度,所以要自己调整的话设置为NO就可以,但是这里涉及到父控制器和子控制器的话,我发现我当时只是设置了childVC的automaticallyAdjustsScrollViewInsets为NO,再在初始化父控制器时候设置其automaticallyAdjustsScrollViewInsets为NO即可。

在父控制器中:

 

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     /** 
 4      * 在childVC里含有table的时候,为了自己设置被导航栏的影响内间距,
 5      * 在福控制器和自控制器中都需要设置automaticallyAdjustsScrollViewInsets为NO;
 6      * 不然只设置childVC的话,在切换父控制器时候,还是会受到父控制器的自动调整的印象,使得table的显示往下掉导航栏的高度
 7      */
 8     self.automaticallyAdjustsScrollViewInsets = NO;
 9 
10     [self createMid];
11 }

 

子控制器已经交给父控制器管理了,所以可能无需设置automaticallyAdjustsScrollViewInsets吧,在我的实验里是不需要的。

 

 

posted on 2016-02-19 11:33  MichaelMao  阅读(546)  评论(0编辑  收藏  举报