2010-09-27 98 views
0

我創建了一個尺寸爲320像素寬度和120像素高度的小UIView。 我正在使用以下代碼將視圖添加到最上方的窗口。iphone - 處理視圖旋轉

baseview.frame = CGRectMake(0,20,320,120); 
UIWindow* window = [[UIApplication sharedApplication] keyWindow]; 
[window addSubview:baseView];  
[window bringSubviewToFront:baseView]; 

上面的代碼在狀態欄下方顯示一個視圖,如預期的那樣。 當應用的方向是縱向時,這工作正常。但是,當應用程序的方向反轉的畫像,我添加的一行代碼來旋轉視圖,這是

[baseView setTransform:CGAffineTransformMakeRotation(-M_PI/2)]; 

但現在,我看到在應用程序底部的觀點(而不是在狀態欄下方頂部看到)和基本視圖旋轉並正常出現,除了底部的位置。我應該如何處理這種情況以在狀態欄下顯示視圖。

回答

0

如果您將有問題的視圖作爲子視圖添加到窗口中的主視圖中,則會爲您處理旋轉和定位。

如果你確實需要添加視圖作爲關鍵窗口的子視圖,我認爲你需要調整視圖的中心。

+0

即使我試圖設置視圖的中心。它仍然無法正常工作。我懷疑的問題是0,0座標以縱向模式左上角開始。即使在旋轉設備之後,座標也將具有相同的位置。這就是爲什麼它不會改變到最佳位置。 – Satyam 2010-09-27 10:06:17

+0

你不能添加視圖作爲子視圖到主視圖嗎?既然這樣可以解決問題,除了我很少需要添加一個視圖作爲子視圖到主窗口。 – 2010-09-27 10:09:22

+0

我同意你的意見。我正在嘗試創建我自己的警報視圖,這是我想添加到主窗口中的一種東西。即使鍵盤出現,我的警報應該在應用程序上方。最後,設置中心解決了我的問題。感謝您的信息 – Satyam 2010-09-27 10:13:31