iOS開發- iPhone6/6 Plus適配 – iPhone手機開發技術文章 iPhone軟體開發教學課程

花瞭點時間, 重新整理瞭下iPhone的相關適配, 總結如下:

iOS6之前, 屏幕適配一般使用autosize,設置視圖與父視圖的尺寸關系 缺陷:(Autosizing佈局的不足) 1. 不能設置視圖與視圖之間的關系 2. 不能設置尺寸放大,縮小的最大值,最小值iOS6之後, 使用自動佈局。AutoLayoutiOS8 size classes (更加抽象, 正方形)

另外, 現在主流的一些設備參數如下:

iPhone iPhone4 iPhone5 iPhone6 iPhone6+
Point 320*480 320*480 320*568 375*667 414*736
Pixel 320*480 640*960 640*1136 750*1334 1242*2208
Pexel(設備) ~ ~ ~ 1920*1080
Scale 1 2 2 2 3
PPI 163 326 326 326 401

也就是說. 現在如果要適配iPhone6 Plus。 那麼你需要另外提供一套@3x的圖片. (之前隻有一套常規, 一套@2x) 可以看Scale裡的值。

簡單的說:iPhone4、iPhone5、iPhone6這幾個設備的ppi都是相同的,默認圖片優先是@2x。iPhone6 Plus的像素密度更高,默認圖片優先是@3x。

另外,iPhone6 Plus有一點和其他設備不同:在App內部獲得的屏幕分辨率是1242*2208,但設備實際分辨率是1920*1080,這時系統會把整體的顯示內容做一個縮放,downscale到1/1.15。這個特性在OSX上也有出現過:

DownScale

從Xcode6 GM版本開始,模擬器新增瞭iPhone6和iPhone6 Plus兩種,如果舊的工程直接跑到這兩個模擬器中時,默認是”兼容模式”,即系統會簡單的把內容等比例放大,顯示效果有些模糊但尚可接受。此時App內部獲取到的設備分辨率和iPhone5是一樣的:320*568 point。

也就是說, 就是你原先的工程, 沒有適配iPhone6 plus。 但是在iPhone6 plus上運行, 也是沒有問題的。 這時候設備分辨率會和5一樣。320*568。即iPhone6 plus適配你的應用, 而不是你的應用去適配iPhone6 plus。這導致瞭6的高分辨率無用武之地。

所以,我們要手動開啟高分辨率模式。

啟用高分辨率模式

啟用高分辨率模式有2個方法(目前我能找到的):

1.添加大屏的LaunchImage:
在Images.xcassets裡,刪除舊的LaunchImage組,然後新建LaunchImage組,添加對應高分辨率的圖片。對此,這裡有一篇更詳細的圖文介紹:How to Add a Launch Image for the iPhone 6。如果想要快速測試一下新的效果,這裡有3張示例圖片下載。

2.添加Launch Screen File

Launch Screen是Xcode6和iOS8新加的功能,它用一個xib文件來作為啟動畫面。App在舊版iOS啟動時,該屬性會被自動忽略,不會造成異常。
首先,點擊New File ->iOS User Interface ->Launch Screen,然後在工程設置項裡啟用它:

LaunchFile

上面兩處設置,隻要啟用任意一個即可讓App進入高分辨率模式;但如果兩處都沒有設置,則App會回退到兼容模式。鑒於現在不少App還需要兼容iOS5,而第一種方法在iOS5上可能有bug,所以這裡推薦用第二種方法。

所以, 要做好現在這些設備的適配, 需要學會autolayout(自動佈局), 當然,這隻是個人建議。

另外, 還要多準備一份@3x的圖片。

再有, 要開啟高分辨率模式。

再有,仔細觀察6+的模擬器, 它的桌面是可以橫向顯示的。 所以我們的應用在6+上也應該盡量適配橫屏。

下面附帶一些學習資料:

開始iOS 7中自動佈局教程(一)
https://www.cocoachina.com/industry/20131203/7462.html
(翻譯)開始iOS 7中自動佈局教程(二)
https://www.cnblogs.com/zer0Black/p/3977288.html

大屏iPhone的適配
https://blog.ibireme.com/2014/09/16/adapted_to_iphone6/

無限互聯iPhone6適配教程 全部視頻雲盤下載鏈接
下載鏈接:https://pan.baidu.com/s/1kTgK4AF 密碼:p7yp

發佈留言