2011-08-27 63 views
2

我有一個UISplitViewController與公共detailView(右側)。如何全屏UISplitViewController在景觀DetailView

我加入一個按鈕的DetailView在橫向,單擊該按鈕時,該馬西德威(左側)將隱藏的DetailView將成爲全屏。就像Dropbox的應用程序爲iPad

行爲現在,我可以隱藏馬西德威但不能改變的DetailView通過只設置detailviewController.view的幀切換到全屏模式。

splitview的左側寬度= 321, ,並且detailviewController.view.frame在更改前爲{{321,0},{703,748}}。

如果我通過以下代碼更改detailview.frame,有沒有發生變化

self.frame = CGRectMake(0, 0, 1024, 748); 

如果我用下面的代碼它會改變立場,但這不是全屏

self.frame = CGRectMake(0, 0, 703, 748); 

我發現如果我改變以比其來源寬度更大的尺寸(例如:704)的框架,所述框架的位置也不會改變。

如何使detailview在橫向方向變爲整個屏幕寬度? 任何建議將不勝感激。

回答

0

我看到另一個可能使用+ transitionFromView:toView:持續時間:選擇:完成:UIView的方法來交換UISplitViewCintroller的觀點爲其他全屏的UIView實例中的UIWindow視圖

0

我已經找到了下面的鏈接到一個解決方案創建一個自定義的splitview控制器,你可以調整這個來獲得所需的效果。我不認爲有可能改變正常的UISplitViewController的主視圖和詳細視圖的框架大小(我嘗試在iOS5中,它沒有工作)。

Custom SplitView

-anoop

0

這可以用該方法viewWillTransitionToSize來完成,這個方法會被稱爲每當我們的設備方向的變化,並在下面將幫助你實現你想要的。

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{ 
    self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden; 
} 

preferredDisplayMode可用於使主視圖隱藏或顯示或覆蓋Detail View控制器。

相關問題