2012-07-02 97 views
2

我想提供旋轉支持,但是當兩個UIViews之間轉換時,autoResizingMask屬性似乎被忽略。UIView在轉換子視圖時自動調整大小

下面是一個視頻說明問題: http://www.youtube.com/watch?v=AWtO7J6YNxA

我現在有設置到每個的UIView(母體和子視圖):

uiView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 

此外,父視圖具有:

self.view.autoresizesSubviews = YES; 
+0

你實際上是以編程方式設置'autoresizingMask'嗎?這個視圖('uiView')是動態創建的...那是爲什麼?我非常努力地在Xcode的圖形設計器中設置這樣的東西。您可以使用圖形工具來設置自動調整屏蔽設置,而小動畫將向您顯示視圖將如何調整大小。另外,我也很少設置autoresizingMask。如果它的寬度和/或高度是靈活的,通常我也會用'UIViewAutoresizingFlexibleLeftMargin'這樣的東西把它固定到左/右/底部/頂部。我不確定這是否適合你......只是頭腦風暴。 – Nate

回答

0

看起來像從Web視圖(Google頁面)返回時,上面提到的兩個視圖正在PORTRAIT模式下顯示,但t他的設備在LANDSCAPE。如果是這樣,您可以在轉換到UIWebView頁面之前存儲兩個視圖框架座標(x,y,寬度和高度),並在轉換回來時恢復它們。當然,如果設備處於橫向模式或縱向模式,您將需要檢查返回。

如果保存幀座標在縱向模式下,你從你的UIWebView返回到屏幕和設備處於縱向模式,然後只需用

self.myView.frame = CGRectMake(savedValueOfX, 
           savedValueOfY, 
          savedValueOfWidth, 
         savedValueOfHeight); 

恢復它們如果該設備目前處於橫向模式,則像這樣恢復它們...

self.myView.frame = CGRectMake(savedValueOfX, 
           savedValueOfY, 
          savedValueOfHeight, 
          savedValueOfWidth); 
相關問題