2011-04-07 50 views
1

我即將提交我的第一個iPhone/iPad應用程序到AppStore。我的應用程序的功能和用戶界面在兩個平臺(iPhone和iPad)上都是相同的,但我想確保iPad用戶獲得的視圖不是像素式的,並且充滿了工件。在iPhone和iPad上準備二進制文件的圖形

我有兩套圖形:一個大小爲iPhone和一個尺寸的iPad。如何在一個通用二進制文件中使用這些圖形,以便在每種類型的設備上使用適當的圖形?

詳細如何將是巨大的在這裏!

謝謝!


編輯1

請記住,我不只是談論的圖標,而且圖形WITHIN應用和閃屏。兩者的屏幕比例不同,所以它不僅僅是縮放的問題。 (如果我錯了,在我的思想,請指出這一點:)

回答

1

是好還是壞,一個普遍應用的正常系統是提供您的主窗口NIB的兩個獨立版本; iPad和iPhone具有不同的寬高比和不同的像素密度,因此Apple希望您考慮的不僅僅是像素分辨率。您會注意到,在Xcode 4中,您的項目中有兩套單獨的「部署信息」,並且可以在其中指定單獨的「主接口」文件。這也是您可以指定不同的加載屏幕和圖標的地方(通過拖放是最容易的;讓Xcode確保文件名是正確的)。

如果您的應用程序是一樣的接口,但是調整,這是很正常的以供應提名相同的類和它們的主人不同的發鈔銀行。所以,例如假設你有一個類,MainMenuViewController,充滿了通常的IBActions和IBOutlets,你可以創建MainMenuViewController-iPhone.xib和MainMenuViewController-iPad.xib。這兩項的將提名他們的階級作爲MainMenuViewController和包含有線適當的控制。在您的iPhone主窗口的NIB你設置加載從MainMenuViewController-iPhone是視圖控制器,在iPad主窗口NIB你將它設置爲從MainMenuViewController-加載iPad兼容。因爲兩者都導致實例化同一個類的實例,並且設置爲使類可以到達相關控件,所以您只需將代碼的模型部分寫入一次。考慮到這一點,你所要做的就是在iPad NIB中使用iPad圖形,在iPhone NIB中使用iPhone圖形(自動處理@ 2x)。

如果您需要執行任何運行時檢查,您應該查看用戶界面慣用語。例如:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    // do something with the iPhone resources 
} 
else 
{ 
    // do something with the iPad resources 
} 

對UI_USER_INTERFACE_IDIOM文檔見here。假設您使用最新的SDK進行構建,即使在iPad引入之前的iOS版本中,始終可用且安全。

1

好吧,我想你想要做的是這樣的:如果你從代碼網點指定圖像

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    self.image1 = [UIImage imageNamed:@"img1-ipad.png"]; 
} else { 
    self.image1 = [UIImage imageNamed:@"img1-iphone.png"]; 
} 

,那是。

對於這次推出的圖像爲iPad,添加文件默認 - 風景〜ipad.png默認畫像〜ipad.png到項目中。