2011-03-09 68 views
0

我發展我的第一個iPad應用,而應用程序是一樣的郵件應用程序拆分視圖。在細節視圖中,我有2個子視圖,一個用於編輯數據,另一個用於查看數據。當用戶處於查看模式時,他們按下一個按鈕,細節視圖翻轉顯示編輯視圖。嵌套的UIView更改分區大小

我似乎無法作出詳細視圖中的兩個觀點與iPad的方向變化適當調整。在縱向模式下,視圖的尺寸是正確的,但是當改變爲橫向模式時,兩個子視圖會剪切到底部和右側邊緣。我認爲這些視圖應該用它們嵌套在視圖中的視圖自動調整大小。

在根視圖控制器,我有以下代碼:

@implementation RootViewController 

@synthesize detailViewController; 
@synthesize recipies= recipies; 
@synthesize delegate; 

#pragma mark - 
#pragma mark View lifecycle 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.clearsSelectionOnViewWillAppear = NO; 
    self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0); 
    self.detailViewController.recipeView.autoresizingMask= (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); 
    self.detailViewController.isEdit= FALSE; 
    self.detailViewController.editView.autoresizingMask= (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); 
    self.detailViewController.editView.hidden= YES; 

} 

應該調整的子視圖是recipeView和EditView中。我認爲通過設置autoresizeingMask,他們會自動調整大小。我在這裏錯過了什麼,是否需要根據方向更改的可用空間明確設置每個視圖的大小?

任何/所有的答覆感謝!提前致謝。

回答

0

你有沒有找到問題的答案。我處於與你類似或完全相同的位置。我有一個對的DetailView然後插入索引0子視圖到的DetailView但大小都錯了,我不明白爲什麼。

如果我同時添加detailview和子視圖(即將detailview添加到視圖的splitviewcontrollers數組),那麼尺寸是正確的,但如果我簡單地插入一個子視圖到已經存在的detailview上,那麼尺寸在肖像中工作,而不是在橫向或反之亦然(即我認爲autoresize不起作用)。我的解決方案是在啓動要插入的視圖後,檢查方向並強制其大小。例如

if ((self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight)) 
     { 

      self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, 703, 724); 
     } 
     // CHECK: PORTRAIT 
     else 
     { 
      self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, 768, 980); 
     } 

我的膠料都顯得具體哪些工具欄或tabbars我對的DetailView其下方就是爲什麼我有奇怪的大小。

在我有限的意見和iOS的SDK理解上面我的解決方案是最好的一個黑客攻擊的iOS應該爲我們做這一點,必須有一些我們做錯了。