我正在與ECSlidingViewController一起工作。當我加載我的視圖時,所有內容都完美顯示。加載視圖後,當我第一次滑出菜單時,視圖中的兩個表格會改變它們的高度。頂部表格由於某種原因會獲得額外(空白)行,並且底部表格會變小。iOS - UITableViews正在調整大小,當它們不應該
據我所知,當我滑出菜單時,MenuViewController.m或加載主視圖的DoubleTable.m中都沒有代碼。
我或者需要防止發生這種調整大小,或者我需要能夠在不需要的調整大小生效後糾正它。
這裏是我的viewDidLoad中下附的菜單代碼:
self.view.layer.shadowOpacity = 0.75f;
self.view.layer.shadowRadius = 10.0f;
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
if(![self.slidingViewController.underLeftViewController isKindOfClass:[MenuViewController class]]) {
self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
}
[self.view addGestureRecognizer:self.slidingViewController.panGesture];
有些信息可能被證明在揭示問題的有用:
- 我有一個表,DoubleTable和單表兩種觀點。
- SingleTable,驚喜,只有一張桌子,而DoubleTable有兩個。
- SingleTable沒有我上面描述的問題。
- DoubleTable中的表以編程方式在viewDidAppear中調整大小。 SingleTable中的表格沒有以編程方式調整大小。
- 在DoubleTable中更改故事板時,似乎不會影響我在滑動菜單時調整表的大小。
- 相反,看起來好像當我打開幻燈片菜單時,程序調整大小就像是從未發生過一樣。
這裏是我如何調整表中DoubleTable.m:
-(void)viewDidAppear:(BOOL)animated{
CGRect frame = table1.frame;
CGRect Rect= [[UIScreen mainScreen] bounds];
frame.size.height = table1.contentSize.height;
table1.frame = frame;
int table2Height = Rect.size.height - 150 - table1.frame.size.height;
table2.frame = CGRectMake(table2.frame.origin.x, table1.frame.origin.y + 30 + table1.frame.size.height, table2.frame.size.width, table2Height);
}
如果有任何更多的代碼,任何人都覺得我應該張貼,請隨時提出。
您可能需要在viewDidAppear中進行佈局。也許在'layoutSubviews'?如果在故事板上有自動佈局,那麼它會爲您添加約束條件,導致佈局發生時它會回彈。您也可以嘗試關閉此功能,但必須確保您沒有任何限制或重新開啓。 – 2015-02-24 17:30:57
@RoryMcKinnel謝謝,關閉自動佈局將其完全修復。請在下面添加您的答案,以便我可以給您信用。 – 2015-02-24 18:05:02
歡迎。發佈爲答案。 – 2015-02-24 18:12:13