2015-02-24 20 views
1

我正在與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]; 

有些信息可能被證明在揭示問題的有用:

  1. 我有一個表,DoubleTable和單表兩種觀點。
  2. SingleTable,驚喜,只有一張桌子,而DoubleTable有兩個。
  3. SingleTable沒有我上面描述的問題。
  4. DoubleTable中的表以編程方式在viewDidAppear中調整大小。 SingleTable中的表格沒有以編程方式調整大小。
  5. 在DoubleTable中更改故事板時,似乎不會影響我在滑動菜單時調整表的大小。
  6. 相反,看起來好像當我打開幻燈片菜單時,程序調整大小就像是從未發生過一樣。

這裏是我如何調整表中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); 
} 

如果有任何更多的代碼,任何人都覺得我應該張貼,請隨時提出。

+1

您可能需要在viewDidAppear中進行佈局。也許在'layoutSubviews'?如果在故事板上有自動佈局,那麼它會爲您添加約束條件,導致佈局發生時它會回彈。您也可以嘗試關閉此功能,但必須確保您沒有任何限制或重新開啓。 – 2015-02-24 17:30:57

+0

@RoryMcKinnel謝謝,關閉自動佈局將其完全修復。請在下面添加您的答案,以便我可以給您信用。 – 2015-02-24 18:05:02

+0

歡迎。發佈爲答案。 – 2015-02-24 18:12:13

回答

0

您可能需要在viewDidAppear中進行佈局。也許在layoutSubviews?如果在故事板上有自動佈局,那麼它會爲您添加約束條件,導致佈局發生時它會回彈。您也可以嘗試關閉此功能,但必須確保您沒有任何限制或重新開啓。

+0

謝謝,我沒有選中文件檢查器中的自動佈局,問題消失了! – 2015-02-24 18:13:12

相關問題