近期有件很趣味性的問題:我們的一款A(yù)pp有張背景圖,有640*960, ?640*1136, 750*1334刚陡,1242*2208, 應(yīng)該說該有的都有了惩妇。
幾乎所有的人測試都沒有問題(可能大家也沒關(guān)注這個(gè)問題,也許確實(shí)沒有發(fā)生)筐乳。但是在我的iPhone 6s Plus上面就是不顯示這個(gè)背景圖歌殃。開發(fā)把這個(gè)問題研究了老半天,區(qū)分了版本問題蝙云,切圖問題氓皱,程序判斷問題(這里實(shí)際也是存在問題的)一切可能的根源后,確認(rèn)說沒法改勃刨,就我一個(gè)人發(fā)生了波材。
在我眼中,什么問題的發(fā)生都是有他的依據(jù)的身隐,不會(huì)憑空產(chǎn)生(系統(tǒng)級(jí)別的bug廷区,哪么久恭喜你了,這都能碰上)抡医。
因此我就對(duì)開發(fā)說了4個(gè)字:放大模式躲因。
iPhone 6 (S)早敬, iPhone 6 (S) Plus 都存在一個(gè)放大模式的效果忌傻,再放大模式下,iPhone 6 (S)分辨率為 640*1136 (同 5 系列)搞监, 而iPhone 6 (S) Plus為 1125*2001水孩。
開始我說的程序判斷問題,先拋開網(wǎng)上已有的宏定義不說琐驴,我們的程序猿在判斷過程中只有if俘种,就沒有一個(gè)else來結(jié)尾秤标,從而導(dǎo)致了分辨率匹配不上,因此我的背景圖也就是空白了宙刘。(從這點(diǎn)看出苍姜,程序邏輯上的容錯(cuò)性也是比較重要的,程序代碼的健壯性問題這里就不討論了)
希望從事iOS開發(fā)的同學(xué)們還是要多關(guān)注下每個(gè)新機(jī)型的誕生悬包,帶來了哪些新的變更(API衙猪,分辨率等等),會(huì)影響我們的App布近,從而作出應(yīng)變措施(要不就連問題根源都不清楚的)垫释。