2012-09-05 208 views
0

我爲iPhone創建了一個應用程序,現在我想使它具有通用性,能夠在iPad上運行全屏。從iPhone應用程序轉換爲通用應用程序

該應用程序是40MB大,並顯示存儲在包中的許多圖像。他們的大小適合iPhone屏幕。管理這個最好的方法是什麼?

如果我爲iPad添加更大的圖像,應用程序將非常大。我可以爲iPad內容創建一個源文件夾,併爲iPhone內容創建一個源文件夾,然後在客戶購買應用程序時下載正確的文件夾?我對這一切感到困惑,而我的搜尋並沒有帶來什麼結果。

我還讀到,我可以爲iPhone和iPad故事板場景使用相同的類(.h/.m)。那麼對於iPad而言,不同的代碼又該如何管理呢?那是什麼樣的代碼?我對此感到困惑,一些指導會很棒。

我使用Xcode 4與故事板和應用程序是非常基本的,只是一些UITableViews和UIViews與按鈕,文本框,圖像和標籤和一些行動表,這幾乎是..和一個.plist來管理數據。

到目前爲止,我剛剛將目標更改爲「Universal」,併爲iPad添加了故事板文件,並在開始處理某些事情之前等待一些基本指南。希望你瞭解我的問題。謝謝。 :-)

回答

3

如果我爲iPad添加較大的圖像,應用程序將非常大

它將但它是可管理的,你會包括所有在捆綁兩個設備的圖像,只要嘗試壓縮他們最好的你可以不扭曲他們。

注意:減少應用程序消耗的存儲量的一個很好的策略是儘可能平鋪背景圖像......特別是在iPad Retina上。

那麼對於iPad而言,不同的代碼又如何呢? 這個怎麼辦?那是什麼樣的代碼?我有點困惑於 這個,一些指導將是偉大的。

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { 
    //do something for iPad 
}else{ 
    //do something for iPhone/iPod Touch 
} 

這是你可以單獨只應運行特定的設備類型代碼。您不必在任何情況下都使用此功能,或多或少與任何與對象尺寸有關的事物或與只能在某個設備上使用的對象(例如:UIPopOverController)一起使用。

兩個用戶界面成語:UIUserInterfaceIdiomPad & UIUserInterfaceIdiomPhone

此外,這是圖像的命名方案,你應該使用:

  • ImageName.png - 適用於iPhone/iPod的
  • ImageName @ 2x.png - 適用於iPhone/iPod視網膜
  • ImageName〜ipad.png - 適用於iPad
  • ImageName @ 2x〜ipad 。png - 對於iPad視網膜

如果所有這些圖像命名正確,這將大大簡化在應用程序中使用圖像的方式。

UIImage *myImage = [UIImage imageNamed:@"ImageName"]; 

只需使用「ImageName」,iOS將自動使用根據設備類型和分辨率正確的圖像。

+0

謝謝。但是,接下來我必須對已經很長的代碼片段的幾乎所有部分做出if語句。 (爲iPad顯示另一個圖像等)。如果我只是爲iPad版創建一個新項目,那麼客戶仍然能夠在兩種平臺上都獲得應用程序,而無需爲它們購買應用程序? – ingenspor

+1

那麼如果你不想使用一堆if,另一種方法是爲不同的設備創建不同的類,但這樣做並不現實。不,如果你創建和上傳兩個不同的項目,那麼用戶將不得不購買兩個不同的應用程序,而在通用包中,他們從任何設備購買一次,並可以在任何設備上重新下載和使用它。 –

+0

好吧,非常感謝,非常感謝! – ingenspor

相關問題