iPhone6的物理尺寸比5s放大了17.5%双饥,同樣物理分辨率也增加了17.5%蚯姆,從1136* 640提升到1334* 750五续,這樣同比的增長結(jié)果就是像素密度ppi與5s保持不變,依然是326ppi(4s也是這個(gè)值)龄恋,也就是說6跟5s相比疙驾,屏幕的清晰度不變,只是尺寸變大了郭毕。如果針對5s用像素定位布局做出來的app界面它碎,尤其是依賴568和320這兩個(gè)數(shù)字的界面,很可能出現(xiàn)右邊和下邊出現(xiàn)空白,因?yàn)檫壿嫹直媛首兂闪?67* 375扳肛。
舊的應(yīng)用不做適配的話傻挂,兼容的解決方案是等比放大模式,也就是將原來以568* 320為參考系的界面挖息,所有的邏輯點(diǎn)位置* 1.175對應(yīng)到667* 375之下金拒。而想使用非兼容模式需要通過設(shè)置667* 375對應(yīng)的開屏圖或者launch.storyboard來顯示告訴操作系統(tǒng)使用非等比放大模式。
而到了iPhone6p就又有一點(diǎn)不一樣了套腹,因?yàn)?p的分辨率1920* 1080绪抛,與5s和6相比,其分辨率的增長比率超過了屏幕物理尺寸的增長比例电禀,導(dǎo)致像素密度ppi有顯著增長幢码,從326增加到401,也就是說不但屏幕尺寸變大了尖飞,清晰度也提高了症副,而且清晰度的提高大于屏幕尺寸的提高率。
從程序開發(fā)的角度來看政基,6和6p如果不做適配贞铣,程序肯定會不適應(yīng),其實(shí)每一代iPhone革新都需要做app適配嘛腋么。但這一代的工作量最大咕娄。因?yàn)檫m配通常有兩方面工作:一是頁面布局的調(diào)整,二是圖標(biāo)尺寸的調(diào)整珊擂。
3->4的時(shí)候屏幕尺寸沒變圣勒,只有清晰度變了,所以頁面布局不用調(diào)整(布局是基于點(diǎn)——邏輯分辨率的摧扇,不是基于像素——物理分辨率的)圣贸,只需要把素材圖標(biāo)的像素*2變成@2x,這樣看起來整個(gè)頁面布局還跟以前一樣扛稽,只是圖片和圖標(biāo)變得更清晰了吁峻。
4->5的時(shí)候屏幕尺寸變了(寬度沒變,只有高度增加了)在张,增加了豎向的空間用含,但是清晰度沒變,所以頁面布局需要調(diào)整(不調(diào)整的話老的應(yīng)用是居中顯示帮匾,屏幕上下會留黑啄骇,這就是5對4的兼容模式),但調(diào)整起來應(yīng)該也很容易瘟斜,只需要讓豎向顯示更多的內(nèi)容或者把原來的內(nèi)容在豎向拉開間距即可缸夹。素材圖標(biāo)還是@2x不用調(diào)整痪寻,同樣的圖標(biāo)在手機(jī)上顯示出來,依然是跟3和4的時(shí)候一樣大虽惭。
5->6的時(shí)候屏幕尺寸變了(橫向和豎向都增加了)橡类,但是清晰度沒變,所以跟上一條一樣只需要調(diào)整布局芽唇,唯一不同的是4->5只需要調(diào)整豎向布局顾画,5->6橫向豎向都有增加的空間都需要調(diào)整。所以在這次的兼容模式也跟4->5有區(qū)別了披摄,因?yàn)榧嫒菽J降脑瓌t是保持等比亲雪,4->5的時(shí)候只有一個(gè)維度增加了勇凭,所以豎向居中就可以了疚膊,但5->6的時(shí)候兩個(gè)方向都增加了,而且是等比增加的虾标,那么兼容模式就不是4周都留黑邊了寓盗,而是采用了放大的方式,又因?yàn)?->6屏幕分辨率是等比放大璧函,故兼容模式把界面等比放大以后傀蚌,依然是充滿屏幕,只是圖標(biāo)的物理面積增加大蘸吓,清晰度也變低了一點(diǎn)而已善炫。
5->6p的時(shí)候屏幕尺寸和清晰度都變了。所有不但要調(diào)整布局库继,還要重新做素材圖標(biāo)的清晰度箩艺,改成@3x的分辨率。如果不調(diào)整的話宪萄,那不但右邊和下邊會留空或者留黑艺谆,而且原來的布局的圖標(biāo)物理尺寸也比以前的小了(圖標(biāo)分辨率尺寸沒變,但是6p的ppi增大了拜英,導(dǎo)致物理尺寸變小)静汤。
而6和6p是一起出的,而且屏幕尺寸還不一樣居凶,所以開發(fā)要同時(shí)兼顧這兩種調(diào)整虫给,工作量比以前都要大。然后好消息是Xcode為了今后考慮推出了Autolayout自動(dòng)布局侠碧,通過設(shè)置不同頁面空間之前的約束關(guān)系來簡化實(shí)現(xiàn)抹估,不必對所有的頁面都進(jìn)行適配硬編碼,這次對布局的調(diào)整完成以后舆床,今后屏幕尺寸再變化需要做的工作量就少多了棋蚌,甚至沒有嫁佳。(其實(shí)針對每種屏幕尺寸繼續(xù)做硬編碼也沒關(guān)系,iPhone的機(jī)型畢竟還是有限的谷暮,要是換到Android不用自動(dòng)布局都不行蒿往。)
另外不做適配的情況下,舊的應(yīng)用會顯示的像老人機(jī)那樣放大湿弦,這是蘋果硬件設(shè)計(jì)上為了舊應(yīng)用的兼容策略瓤漏,并且6和6p也并不是第一次采用放大策略,實(shí)際上從iPhone4的163ppi提升到iPhone4S的326 retina ppi颊埃,其放大策略更是直接放大了2倍蔬充,只不過是由于屏幕尺寸沒變,所以前后對比沒有變化而已班利。另外饥漫,不管是6的1334* 750,還是6p的1920* 1080罗标,其高寬比都是1.78庸队,跟iPhone5s的1136* 640下的高寬比是一致的,也就是說以前程序的布局闯割,在不做適配的情況下彻消,只要等比拉伸顯示即可填充滿6和6p的全屏幕,但結(jié)果也就是每個(gè)顯示單元不但變大宙拉,而且變模糊了宾尚,尤其是在6p下更明顯,因?yàn)槔斓姆却蟮枚唷?/p>
說了這么多基本還是理論方面谢澈,至于程序上要怎么做煌贴,一圖勝千言,看懂下面這個(gè)圖基本上對iPhone適配布局就能完全游刃有余了澳化。The Ultimate Guide To iPhone Resolutions
----------------------------更新--------------------------
iPhone X要出了崔步,又多了一個(gè)適配項(xiàng)目。根據(jù)官方適配指南缎谷,iPhone的邏輯像素是375* 812井濒,采用3x轉(zhuǎn)換關(guān)系。那么物理像素應(yīng)該為1125* 2436列林,根據(jù)這個(gè)長寬物理像素計(jì)算出對角線物理像素為2683瑞你,而iPhone又聲稱其屏幕物理尺寸為5.8英寸,則其像素密度為2683/5.8=462希痴,比之前6p的401又增加了不少者甲,難怪這次的屏幕叫做super retina超視網(wǎng)膜屏幕。
但按照方便喬幫主對iPhone4s retina的解釋砌创,ppi超過326就已經(jīng)無法被視網(wǎng)膜分辨了虏缸、那么再進(jìn)一步提高ppi的意義何在鲫懒?或者說,ppi并沒有提高刽辙,而是像6p一樣在顯示1126* 2436這個(gè)尺寸圖像之前又經(jīng)過down sample處理了窥岩?查了一下資料,iPhone X公布出來的ppi是458宰缤,那么反算一下2683/458=5.85颂翼,也就是說iPhone X的實(shí)際屏幕尺寸是5.85英寸。
而關(guān)于retina和ppi超過300肉眼無法分辨這個(gè)結(jié)論慨灭,基本可以斷定為喬幫主為了給iPhone4S和iPad3的宣傳炒作造勢而故意營造出來的說法朦乏,根據(jù)其他一些權(quán)威專家的說法,人類肉眼能夠分辨的ppi極限應(yīng)該在500左右氧骤,也就是說現(xiàn)在的手機(jī)基本快接近極限了呻疹。
最后,屏幕上端的劉海也不是隨便來的语淘,三個(gè)圓相切也很有美感的嘛诲宇。际歼。惶翻。