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

时间:2022-01-07 08:13:25

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

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

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

在父控制器中:

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

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