2010-01-28 43 views
1

我有一個iPhone SDK的方向問題......iPhone SDK的子視圖/上海華定位問題

我推了「持有」視圖控制器到navigationController。 holdViewController使用viewDidLoad來顯示navigationController導航欄,併爲其添加一個翻轉按鈕和一個用於翻轉按鈕的選擇器。然後使用UIViewAnimationTransitionNone添加一個子視圖,顯示包含TableView的UIView。當點擊按鈕時,持有視圖控制器將刪除加載的子視圖,並用另一個包含帶有tableview的視圖的子視圖進行替換,並使用翻轉動畫進行轉換。問題出現在翻轉和改變方向時。雖然翻轉和旋轉似乎首先如果我在橫向模式下翻轉時工作,翻轉的視圖是「剪裁」到縱向寬度,雖然實際上顯示在橫向,旋轉然後沒有修復它,你必須翻轉,旋轉回到肖像,然後再翻轉回來。它看起來像holdingview沒有註冊方向的變化,但我知道這是因爲我已經在所有3個視圖控制器實現

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; 

,我可以看到orientationChanged函數被調用每一個。

所有這三個viewcontrollers在viewDidLoad中

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

設置自動尺寸和我也實現

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
{ 
return YES; 
} 

沒有任何人有任何想法怎麼回事,或者更重要的是,我能做些什麼來修理它?

非常感謝

+1

您是否找到了解決方案?我正面臨類似的問題 – Linus 2011-05-11 23:35:50

回答

3

我有類似的問題添加子視圖。子視圖正在橫向裁剪。在添加子視圖之前,我必須設置子視圖的框架,以便子視圖能夠正確填充。

下面是解決我的問題的代碼:[subcontroller.view setFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

+0

這是正確的答案!我有一個項目,在IB中添加一個以橫向創建的視圖作爲另一個僅限景觀的視圖的子視圖。它不斷出現「裁剪」,但方向正確。事實上,所有的按鈕和標籤都處於正確的位置,只是視圖背景被「裁剪」。在添加之前重新定義子視圖框架是解決方案(並且相信我,我嘗試了所有內容!) – mputnamtennessee 2011-10-11 14:27:18