2013-01-10 92 views
0

我有一個應用程序,我只支持橫向,它在ios6中很好用,但在ios5中有些子視圖顯示有portait座標和大小。我把iPad子視圖似乎有縱向

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || 
     interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

無處不在我能想象,但這些意見似乎卡住了portait,我的寬度參數似乎是高度,反之亦然。

出現的主視圖看起來是正確的,但某些子視圖似乎錯了,尤其是那些從其他元素計算它們的位置和大小的人,我恐怕要交換尺寸,因爲這會破壞ios6,我不想做任何條件代碼,如果我能避免它。

有沒有人看到這個?我讀了一些其他問題,但他們似乎處理旋轉,但在我的情況下,我不旋轉。

基本上在我的viewDidLoad我的導航控制器

我的框架有:

2013-01-10 17:14:29.445 EdwardsSync[29070:c07] Width:: 768.000000 
2013-01-10 17:14:29.445 EdwardsSync[29070:c07] Height:: 1024.000000 
即使它出現在景觀

。這是框架和界限。

有趣的,如果我等到viewDidAppear的座標是正確的。

有沒有辦法更快地告訴我的應用程序的方向?

+0

你看着在viewWillAppear中的框架和範圍? – kallikak

+0

是的,他們在那裏是正確的,但那不是理想的。 –

回答

0

也進入Interface Builder中的xib並調整視圖的尺寸。查看屬性選擇方向橫向。它在Simulated Metrics之下。還可以指定大小度量標準1024 x 768等。

如果需要,在構建設置中刪除縱向視圖。

+0

這個工程在ios6以及我一直在做的很好,我的問題似乎是在ios5中。 –

+0

確保autoresize子視圖不被選中。這可能是搞砸了。 – ApolloSoftware

+0

也使用自動佈局功能只是特定於iOS 6.0的功能,如果它在5.0中檢查,您將有錯誤。 – ApolloSoftware

0

在UIViewController中旋轉的支持的iOS 6.查看改變在本頁面的處理視圖旋轉部分:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

特別是,檢查supportedInterfaceOrientationsshouldAutorotate方法。頭文件中的註釋非常有用。

此外,您在應用程序的Info.plist文件中定義了哪些方向?

+0

我不旋轉。 –

+0

我不明白 - 問題視圖是以縱向顯示嗎?或者你的意思只是維度交換? – kallikak

+0

看起來好像寬度和高度被換成了一些子視圖。 –

0

設置autoresizingMask對你的看法

yourview.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

利用這個得到高度和寬度

CGRectGetWidth(self.view.frame) 
CGRectGetHeight(self.view.frame)