2013-08-16 24 views
0

我是Xcode的全新品牌,並且由於我以前的編程經驗,Xcode中的Storyboard以及大多數本網站,都能夠通過一些相當簡單的應用程序進行搜索。如何使我的應用程序具有通用性? (3.5英寸,4英寸和iPad)

我還沒有弄清楚的一件事是如何使我的應用程序通用?我的應用程序設置方式是,它看起來很像iPhone主屏幕上的頁面和應用程序圖標。但是,當我點擊「更改爲iPhone 5」按鈕時,1)它只改變了我的FirstViewController和2)我的圖標全部不對齊。

我是否製作另一個故事板(如果是這樣,如何?)?我是否爲每個屏幕分辨率製作另一個視圖控制器?對於這些問題中的任何一個,我是否可以編程測試以查看我正在使用哪個設備,並選擇正確的故事板或ViewController?我的應用程序目前設置爲通用,但我仍然無法找到視圖控制器和東西的iPad分辨率選項。

請儘量簡單。我只是在極短的時間內這樣做。感謝您在這裏和周圍的所有幫助!

+0

如果你谷歌,你會得到很多鏈接,談論這一點。即使您將代碼標記爲通用,但您需要注意所有UI對齊。有不同的選擇來處理這個問題,一個是如果你的UI不復雜,並且最初你已經使用Storyboard或者NIB來設計你的應用,那麼最好還是爲iPhone5和iPad創建另一個故事板或者NIB,但是如果你精通以編程方式創建UI,然後我會建議您使用iOS6中引入的AutoLayout。 –

回答

0

所以爲了獲得iPad版的工作,請按照下列步驟操作:

首先去你的目標設定,向下滾動到「部署信息」,變它從iPhone到通用 Step 1

接下來,您將需要創建一個新的Storyboard文件。在頂部的欄中點擊文件>新建>文件,此時應彈出: New Storyboard 如上所示選擇iOS>用戶界面>情節提要後,點擊下一步,它會詢問iPhone或iPad。選擇iPad後,新文件將準備好映射您的iPad界面。但是,您需要確保應用程序使用它。因此,請回到目標設置並向下滾動到「部署信息」並切換到iPad: iPad Settings

將「主界面」選項設置爲新故事板文件的名稱。

至於iPhone 5的準備,該部分可能會有點煩人。我發現額外的空間對於任何主要的增加都太小,但太大而不容易被忽略。你如何處理它會根據你的應用程序的不同而有很大的不同。從你所描述的,像iPhone屏幕這樣的應用圖標,你可能會想要有一排圖標,就像iOS一樣。要做到這一點,您可以以編程方式進行管理,或者您可能希望爲iPhone 4和iPhone 5分別設置故事板。如果您需要單獨的故事板,則可以使用this question解決方案。

+0

如何讓iPad也支持風景?它會自動執行嗎? – ThatVideoGuyTom

+0

它應該自動執行,但如果沒有,請在目標設置中查看選中的設備方向。 – WolfLink

+0

您還需要處理約束,無論是在界面構建器還是以編程方式。 – WolfLink

0

初始化故事板:

CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size; 
UIViewController *initialViewController; 
if (iOSDeviceScreenSize.height == 480) 
{ 
    // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone35 
    UIStoryboard *iPhone35Storyboard = [UIStoryboard storyboardWithName:@"iPhone4" bundle:nil]; 

    // Instantiate the initial view controller object from the storyboard 
     initialViewController = [iPhone35Storyboard instantiateInitialViewController]; 
} 

if (iOSDeviceScreenSize.height == 568) 
{ 
// iPhone 5 and iPod Touch 5th generation: 4 inch screen 
    // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone4 
    UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"iPhone5" bundle:nil]; 
    initialViewController = [iPhone4Storyboard instantiateInitialViewController]; 
} 
    self.window.rootViewController = initialViewController; 
    [self.window makeKeyAndVisible]; 
return YES; 
+0

什麼方法,你把這個放在什麼類? – WolfLink

+0

在您的項目的應用程序委託中。 –

+0

你應該更清楚一點。當我第一次看到它時,我有點困惑,特別是底部的「返回YES」。 – WolfLink

相關問題