Monthly Archives: 九月 2012

如何處理iPhone 5新螢幕尺寸問題?

當蘋果在 iPhone 5 發佈會上正式公佈用上4吋新螢幕,相信所有iOS 的開發者最關心的問題就是現有的應用程式如何支援新的螢幕解像度(640×1136)。

在知名的程式設計答問網站Stack Overflow也有開發者開帖討論此問題。

維持舊的螢幕解像度

首先,在甚麼都不做的情況下,所有舊的應用程式在新的螢幕解像度下都可以順利執行。iPhone 5 會自動將畫面置中,上下會留有各88 points 高既黑邊。

 

啟用新的螢幕解像度

要使你的應用在iPhone 5下啟用新的螢幕解像度,你需要在專案中添加一張命名為Default-568h@2x.png新的Retina (4-inch) Launch image (640×1136 pixels)。

如果您只打算支持iOS6+,那麼最簡單的做法就是使用自動佈局(Auto Layout)。它會移除所有固定的佈局處理,而使用指定的參數去設定佈局位置。這個方法不需要hard-coded,非常簡單方便 。

但是,如果你要支持舊的iOS,那麼方法就要取決於你的應用。大部分的應用程序,都會使用標準的導航欄(Navigation bar),和/或標籤欄(Tab bar),可以簡單地在擴大中間內容的畫面。用autoresizingMask 自動調整中間畫面的大小。

view.autoresizingMask = UIViewAutoresizingFlexibleWidth| UIViewAutoresizingFlexibleHeight;

但是,如果您的應用程序顯示內容的畫面是設計到pixel-perfect,那麼你最好的選擇是重新設計內容的畫面,以便它可以適應不同的高度。

如果這是不可能的,那麼剩下的唯一選擇是有兩個UI(iPhone5以前 和 iPhone5)。如果覺得分兩個UI不好的話,那麼就維持上下留有黑邊可能是最好的辦法。

引用來源: How to deal with iPhone 5 screen size?

題外話:

Auto Layout

WWDC 2012 有三段有關 Auto Layout 的 Session Video,有興趣的朋友可以去Apple WWDC 2012 的網站下載(須付費Developer Account)。如果沒有Developer Account,有人把其中一段上傳到 YouTube。

Link: Introduction to Auto Layout for iOS and OS X