最近用tabbar來切換控制器,用childViewController來實現多控制器管理,多列表切換,在子控制器中設置了automaticallyAdjustsScrollViewInsets屬性爲NO,可是在切換的父控制器時候,切回來的時候仍是會自動往下掉,花了點時間,發現本身對這個屬性理解的不夠好:spa
往下掉其實就是控制器的automaticallyAdjustsScrollViewInsets這個屬性在搗鬼,有導航欄的scrollView會默認把scrollView的顯示往下移動64,就是導航欄的高度,因此要本身調整的話設置爲NO就能夠,可是這裏涉及到父控制器和子控制器的話,我發現我當時只是設置了childVC的automaticallyAdjustsScrollViewInsets爲NO,再在初始化父控制器時候設置其automaticallyAdjustsScrollViewInsets爲NO便可。code
在父控制器中:blog
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吧,在個人實驗裏是不須要的。table