天天看點

IOS對iPhone6和plus的适配

首先了解下iPhone各個裝置的分辨率

iPhone4, iPhone4s 分辨率960*640  長寬比1.5

iPhone5, iPhone5s  分辨率1136*640  長寬比1.775

iPhone6 分辨率1334*750  長寬比1.778

iPhone6+ 分辨率1920*1080  長寬比1.777

由此可見,iPhone4和4s的長寬比是4:3,而iPhone5、5s、6、6+的長寬比可以粗略認為是16:9,是可以等比例縮放的。

再來了解下螢幕像素的寬度

在程式中列印下 [UIScreenmainScreen].bounds.size.width

可以得出不同裝置的螢幕像素寬度:

iPhone4/4s/5/5s 320

iPhone6/6plus放大模式  320

iPhone6标準模式 375

iPhone6plus标準模式 414

iOS8提供了2種顯示模式:标準模式和放大模式。可以在“設定”的“顯示和亮度”中進行修改,在放大模式中螢幕像素寬度都是固定的320,此時界面是等比放大的,而在标準模式中螢幕寬度會變大,此時需要調整界面的各個控件位置來适配新的界面寬度。

如果舊的工程直接跑到這兩個模拟器中時,預設是"相容模式",即系統會簡單的把内容等比例放大,顯示效果有些模糊但尚可接受。此時App内部擷取到的裝置分辨率和iPhone5是一樣的。

啟用高分辨率模式有2個方法:

1.添加大屏的LaunchImage:

在Images.xcassets裡,删除舊的LaunchImage組,然後建立LaunchImage組,添加對應高分辨率的圖檔。

2.添加Launch Screen File

Launch Screen是Xcode6和iOS8新加的功能,它用一個xib檔案來作為啟動畫面。App在舊版iOS(低于ios8)啟動時,該屬性會被自動忽略,不會造成異常。

首先,點選New File ->iOS User Interface ->Launch Screen,然後在工程設定項裡啟用它:Launch Screen File

不過這個xib不能關聯任何的代碼(不能自定義View的Class,不能IBOutlet,不能加Object),可以了解成這個xib就是一張截圖,這個方案的好處在于可以使用到Size Classes來針對不同螢幕布局這個xib。

上面兩處設定,隻要啟用任意一個即可讓App進入高分辨率模式;但如果兩處都沒有設定,則App會回退到相容模式。

兩處都設定的話在ios8會走Launch Screen File,在低于ios8 走LaunchImage

LaunchImage的尺寸:

iPhone 6

portrait (@2x)  : 750 x 1334

landscape (@2x)  : 1334 x 750

iPhone 6 Plus:

portrait (@3x)  : 1242 x 2208

landscape (@3x)  : 2208 x 1242

iOS