2012-09-20 27 views
13

是讓他們出現在iPhone 5全屏蘋果即將開始出貨iPhone 5的,我期待爲延長我的應用程序。我在模擬器上運行了我的應用程序,甚至連UITableView延伸到屏幕底部的應用程序,黑色條出現在屏幕的頂部和底部。擴展應用程式iPhone 5 - 最佳實踐現在

這是我的問題:什麼是擴展應用程序的最佳做法iPhone 5

我應該做一個單獨的榫現在對於3.5和英寸的屏幕,或者在代碼擴展的一切嗎?

我試圖使這一平滑過渡成爲可能,所以我呼籲知識的SO來給我介紹到最好的辦法就是建立兩個屏幕的內容。

回答

13

利用應用程序中完整的4英寸屏幕看起來就像添加一個名爲[email protected]的新的默認圖像一樣簡單,尺寸爲640 x 1136. Xcode 4.5實際上會提供爲您自動添加黑色圖像

對於使用標準UI組件(如表格視圖)的應用程序,這些表格被神奇地擴展爲填充屏幕,我更新了應用程序的工作方式,這實際上很簡單,與有關我自己的代碼和UI設置只有幾個小問題,但所有的一切,很容易。

與其他應用程序,我的工作(我自己),它採用無日對比這e除UIViews之外的標準UI組件。爲了處理3.5英寸和4英寸的屏幕,我不得不花費相當多的時間重構需要知道應用程序各種操作的屏幕大小的代碼。 (在這種情況下,應用程序更多的是一種遊戲/模擬器比說,一個生產力應用程序。)

所以,你的里程可能針對的支持4" 畫面所需的工作量真的水平而有所不同。這將取決於如何複雜和「非標」的程序是,因爲我已經發現了。

+0

在我的應用我加載一個NIB我的界面,使用標籤欄爲根視圖,並自動調整大小的東西只是沒有做的正確的事情的iPhone版本的你可以在UITabBarController的內部獲得一個UITableView,以保持固定在同一個垂直位置,並且在垂直尺寸上增加正確的量(88pt或176px)?我的後續最佳實踐問題會是,在代碼中調整這些子視圖更好嗎,還是有一些方法可以通過NIB中的自動調整來可靠地工作? –

+0

@ScottLahteine在我提到的第一個應用程序中,我沒有到任何特殊的(除了添加第三個默認圖像)來獲取表格視圖來調整au大小tomatically。這些表格視圖也位於導航控制器內,屬於標籤欄控制器的一部分。我會檢查你的NIB文件是否有任何自動修復的怪異現象。 –

+0

具體來說,我需要一個子視圖(一個UITableView)總是從頂部開始35pt,並且它的高度應該拉伸以便其底部總是從下面的標籤開始爲108pt,然後第二個子視圖(高度爲108pt)將保持固定正好在標籤上方。 標籤欄子視圖應以什麼尺寸爲出發點?有關係嗎?我期望一個固定在根視圖底部的子視圖保持固定在標籤上方,這似乎是我現在混淆它的正式行爲。工字梁似乎保留了原來的距離。啊,現在全部都落到了...... –

6

當更新的大屏幕iPhone 5的現有的應用程序,你可能還會發現,在屏幕的底部是不是「可點擊」。例如,如果你有在屏幕底部的工具欄,該工具欄會顯示正確,但按鈕不會對觸摸的反應。如果是這樣的話,你需要告訴應用程序的窗口全屏使用。

如果你有MainWindow.xib,打開它,選擇window,並在屬性檢查器中,確保「在啓動全屏」被選中。

如果你沒有在你的項目做MainWindow.xib(以及大多數較新的項目沒有),那麼你需要在你的應用程序代理的applicationDidFinishLaunching添加一個額外的行:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 

    [window setFrame:[[UIScreen mainScreen] bounds]]; 
    ... 
} 

我把它在方法的開始。像魅力一樣工作。

+0

在我的GL11遊戲中,我必須在窗口拉伸到填滿屏幕之前設置「啓動時全屏」屬性(沒有此自動調整大小設置沒有區別)。我也使用Apple的GLES2Sample項目中的MainWindow.xib。 – arberg

3

你會發現模擬器這個路徑XCode-> Targets->摘要 - > iPhone/iPod的部署信息(視網膜4英寸)

你需要用大小添加默認圖像640×1136 。

AppDelegate文件

mainWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 

mainWindow.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

你會得到你的窗口的主屏尺寸應用此代碼。只要你想在你的類文件,檢查一兩件事只是添加以下代碼

if ([UIScreen mainScreen].bounds.size.height > 500.0f) 

爲了您的視圖控制器只需添加一個屬性autoresizingMask

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

這工作對我很好。