是好還是壞,一個普遍應用的正常系統是提供您的主窗口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。 – 2011-04-07 16:01:58