关于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吧,在我的实验里是不需要的。