2010-08-16 23 views
1

我目前正在處理一個包含分頁UIScrollView的iPhone視圖控制器,以顯示多頁信息。我的應用程序需要支持橫向模式,並且我一直在找出實現這一點的正確方法時遇到了一些問題。如何在旋轉之前確定一個視圖的框架,實際發生旋轉之前

爲了保持視圖的連續性,我想分兩步手動調整視圖大小。首先,我重寫willRotateToInterfaceOrientation。在這種方法中,我將分頁滾動視圖中所有視圖的寬度擴展到最終以橫向模式顯示的寬度。然後,在didRotateToInterfaceOrientation中,我減少視圖的高度以適合橫向模式的高度。

我的問題是,我如何確定新的寬度和高度來調整我的意見?對準確值進行硬編碼感覺像是一次糟糕的黑客攻擊,並且我明白必須有一種解決問題的優雅方式。

回答

1

我不知道你爲什麼在做didRotateToInterfaceOrientation中的佈局,這發生在旋轉結束。無論如何,新的框架應該已經由UIViewController設置。

如果您要將動畫同步到動畫,請參閱willAnimateRotationToInterfaceOrientation:duration:。根據文檔,

此方法在用於旋轉視圖的動畫塊中調用。您可以重寫此方法並使用它來配置視圖旋轉期間應發生的其他動畫。例如,您可以使用它來調整內容的縮放級別,更改滾動條位置或修改視圖的其他動畫屬性。

在調用此方法時,interfaceOrientation屬性已被設置爲新的方向。因此,您可以在此方法中執行視圖所需的任何其他佈局。

+0

我看到它的方式,我在這裏的旋轉是一個兩階段的過程。在旋轉開始之前,我想讓視圖足夠寬,以免旋轉動畫不能將視圖顯示在當前視圖的任何一側。但是,我不想在旋轉發生之前減小視圖的高度,否則在旋轉過程中屏幕底部會有空白區域。 – johnw188 2010-08-16 23:43:39

+0

在適當的視圖上設置UIView.clipsToBounds通常就足夠了。 – 2010-08-17 13:51:22

相關問題