2012-04-13 67 views
0

目前,這是發生了什麼事。如果我處於肖像模式,並且呈現一個新的modalViewController,然後旋轉到橫向,autoResizing完美地工作,一切看起來都很棒。但是,如果我處於橫向模式,並提出了一個新的modalViewController,autoResizing不起作用,並且一切看起來都很怪異。任何人都可以想出任何可能的想法,爲什麼會發生這種情況?我絕望,我嘗試了一切。UIView autoResizing有時候工作

也許一種解決這個問題的方法就是弄清楚當我在肖像中時系統調用什麼代碼,然後我轉向風景。也許我可以調用該確切的代碼,如果我的modalView呈現在橫向。我試過layoutIfNeeded和setNeedsDisplay,但他們什麼都不做。我也嘗試設置contentMode重繪 - 沒有幫助。

我有這個在我viewDidLoad中的模態視圖

if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) 
{ 
    NSLog(@"is landscape, width:%f", self.view.frame.size.width); 
} 

這個輸出320,即使我在的風景,當它應該是480

+0

碼嗎,先生? – CodaFi 2012-04-13 04:37:18

+0

更多的是一個概念上的問題..我不知道我可以發佈什麼代碼,這真的會有所幫助。 – Snowman 2012-04-13 04:41:55

+1

然後,你會有一個概念上的答案。 – CodaFi 2012-04-13 04:42:15

回答

2

UIViewAutoResizingMasks是我們所說的作爲'支柱'和'彈簧'。考慮一下:你有一個大廣場,裏面有一個小廣場。爲了使該方形保持完美居中,您必須從大方形的每個內邊緣設置固定寬度,以限制它。這些是支柱。

另一方面,彈簧更像UIView在旋轉過程中的工作。假設我們的觀點必須保持在屏幕的底部,並與中心對齊。我們希望保持頂級彈簧的靈活性,以便當視圖從460像素旋轉到320像素時,相對於屏幕現在更改的尺寸,它保持相同的位置。

記住這一點,當縱向加載視圖(如同所有UIViewControllers一樣),但實際方向是橫向時,視圖可能會變得「混亂」並且維持混亂的混合方向類型視圖。如果你絕對必須(和我不能強調度假十歲上下怎麼最後,這是)強行改變方向時請先用的iOS 5.x中的+ attemptRotationToDeviceOrientarion

相關問題