簡體   English   中英

轉換iPad應用程序以處理兩種視圖模式的最佳方法是什么?

[英]What's the best way to convert iPad app to handle both view modes?

我有一個現有的iPad應用程序(XCode 4.6,iOS 6.2,ARC和情節提要)。 目前,它僅在App Store中處於縱向模式; 我對橫向模式有一些要求。 不幸的是,所有的線等都是使用CG方法繪制的,並且受到數學控制。 這是縱向模式下的樣子:

縱向模式

這就是橫向模式下的樣子:

橫向模式

我的問題是:在知道繪圖是數學控制的情況下,在哪里可以找到一些好文檔,為我提供將兩種模式轉換為該應用所需的基本步驟?

如果以數學方式進行控制,則最好的方法是將所有坐標引用到父視圖的尺寸,尤其是引用隨設備旋轉而變化的屬性self.view.bounds。

然后,當方向更改后,您必須重新繪制界面。 一個好的方法是在方法內部:

-(void)viewWillLayoutSubviews

如果過去使用CG方法進行過一些自定義視圖,則最好的方法是將所有內容都引用到邊界。 這樣,當您通過旋轉屏幕或在iPhone上使用它來更改屏幕尺寸時,它無需修改即可工作。

更新想象一下,您在(76.8,512.0)處的點正好是iPad和縱向方向,寬度為10%,高度為50%。 因此,對於每一對坐標,而不是將它們與絕對數字一起使用,您必須將其替換為父視圖尺寸的分數:

// old drawing method
CGPoint oldPoint = CGPointMake(76.8, 512.0);

// new drawing method
CGFloat W = self.view.bounds.size.width;
CGFloat H = self.view.bounds.size.height; 
CGPoint newPoint = CGPointMake(0.1 * W, 0.5 * H)  // 76.8 = 0.1 * 768; 512 = 0.5 * 1024

在第二種情況下; 當更改方向時,邊界也會更改,並且坐標將獲得新值,但是比例將與其他方向相同,水平方向為10%,垂直方向為50%。

你明白了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM