2013-06-18 108 views
1

我從來沒有在我的應用中使用過Interface Builder,不認爲這是件好事。如何從iPAD/iPAD2佈局轉換爲iPhone4/iPhone5/iPAD-mini佈局

我的應用程序已經設計用於iPad/iPad2佈局,從未考慮過它在iPhone4/iPhone5/iPAD-mini上的工作。 現在我希望我的應用程序能夠適用於所有這些應用程序。

我認爲這將是極其醜陋有4+佈局通用的應用程序,如:

if(ipad or ipad2) 
view.frame = CGRectMake(0,0,100,100); 
else if(ipad-mini) 
    view.frame = CGRectMake(0,0,100,100); 
else if(iphone4) 
    view.frame = CGRectMake(0,0,100,100); 
else if(iphone5) 
    view.frame = CGRectMake(0,0,100,100); 
else if(iphone6) 
    view.frame = CGRectMake(0,0,100,100); 
else if(iphone7) 
    view.frame = CGRectMake(0,0,100,100); 

應該有理想的只有2佈局,但我不知道該如何實現這個辦法。這些固定的座標不會在不同屏幕尺寸

if(ipad or ipad2 or ipad-mini) 
    view.frame = CGRectMake(0,0,100,100); 
else if(iphone4 or iphone5 or iphone6 or iphone7) 
    view.frame = CGRectMake(0,0,100,100); 

我該怎麼做的最好的方式通用的應用程序舒展?

+0

iPad mini佈局與其他iPad完全相同。您只需要處理兩種不同的iPhone/iPod觸摸屏尺寸(以及視網膜/非視網膜)。 – rmaddy

回答

0

當你開始建立這個程序,你應該做soemthing這樣的:

view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth; 

,你根據自己的需要更改上述選項。

,是的,你需要爲iPad不同,iphone

0

首先,你的iPhone佈局幾乎肯定會從iPad的截然不同。對於iPad而言,所有不同類型的寬高比都是相同的,所以您只需要爲視網膜上的iPad提供@ 2x圖像。

但是,對於iPhone而言,iPhone 4/iPhone 4和iPhone 5的屏幕空間要少得多,因此您需要找到在較小空間內呈現相同信息的方法。這可以使用scrollviews,tableViews來完成,並在一個viewController中擁有一部分信息,您可以從另一個viewController切換到該部分。

最後,我強烈建議大多數情況下的界​​面生成器。它會照顧iPhone vs iPhone 5,以及肖像與風景。它甚至會在旋轉手機時自動生成過渡動畫。然而,有時候,當你需要做自定義繪圖或者我們的佈局很難通過界面構建​​器獲得時,最好以編程方式進行。在這種情況下,通過檢查[[UIScreen mainScreen] applicationFrame]的大小來檢查哪個設備是一種好方法。請檢查iPad的1024x768,iPhone的320x480或iPhone 5的320x568的值。

但是,您確實應該使用界面構建器(對於大多數情況)。爲什麼你想避免它?