iOS 設備屏幕適配

1.幾個基本概念

Points:

點,iOS開發(fā)中引入的抽象單位糠馆,開發(fā)過程中所有基于坐標系統(tǒng)的繪制都是基于point作為單位。在iPhone2G除嘹,3G写半,3GS時代,point和屏幕上的像素是完全一一對應的尉咕,即320*480(points)對應也是320*480(pixels)叠蝇;

Rendered Pixels:

渲染像素,以point為單位的繪制最終都會渲染成pixels,這個過程被稱為光柵化年缎』诖罚基于point的坐標系乘以比例因子可以得到基于像素的坐標系,高比例因子會有更多的細節(jié)展示单芜,目前的比例因子一般是1x蜕该,2x,3x洲鸠。

Physical Pixels:

物理像素堂淡,是設備屏幕的實際像素。

PPI(pixels-per-inch):

每英寸會有多少物理像素被渲染扒腕。

Screen Size:

屏幕尺寸绢淀,手機屏幕對角線的物理長度

2.不同iOS設備的屏幕參數(shù)


參數(shù)

所謂屏幕模式,就是屏幕中一個point有多少個Rendered Pixels渲染瘾腰。

對于2倍屏又稱Retina顯示屏皆的,1point會有2*2Rendered Pixels面積渲染,

對于3倍屏又稱Retina HD顯示屏居灯,1point會有3*3Rendered Pixels面積渲染祭务。

3.開發(fā)中圖片的適配

在iOS開發(fā)中,所有控件的坐標以及控件大小都是以point為單位的怪嫌,比如义锥,開發(fā)中需要展示一張20*20point的圖片,但是要適配所有的iOS設備岩灭,那UI設計師應該怎么提供圖片呢拌倍?

這里就牽扯到屏幕模式的概念,普通屏需要一張20*20px的圖片噪径,Retina屏需要一張40*40px的圖片柱恤,Retina HD屏需要60*60px的圖片,所以UI設計師就需要提供這三種大小的圖片找爱,但是目前iOS設備中普通屏已經(jīng)基本消失了梗顺,所以只需要提供后兩種尺寸圖片就可以了。當然在對提供的圖片命名時也需要遵守以下規(guī)范:

standard:ImageName+device_modifier.filename_extension

Retina? :ImageName+@2x+device_modifier.filename_extension

Retina HD:ImageName+@3x+device_modifier.filename_extension

例如:

icon.png ? ? ? ? ?

icon@2x~iphone.png

icon@3x~ipad.png

按照這種格式之后车摄,不同屏幕的設備會自動加載相應的圖片資源寺谤。

4.適配協(xié)作舉例


淘寶適配協(xié)作模式

第一步仑鸥,視覺設計階段,設計師按寬度750px(iPhone 6)做設計稿变屁,除圖片外所有設計元素用矢量路徑來做眼俊。設計定稿后在750px的設計稿上做標注,輸出標注圖粟关。同時等比放大1.5倍生成寬度1125px的設計稿疮胖,在1125px的稿子里切圖。

第二步闷板,輸出兩個交付物給開發(fā)工程師:一個是程序用到的@3x切圖資源澎灸,另一個是寬度750px的設計標注圖。

第三步蛔垢,開發(fā)工程師拿到750px標注圖和@3x切圖資源击孩,完成iPhone 6(375pt)的界面開發(fā)。此階段不能用固定寬度的方式開發(fā)界面鹏漆,得用自動布局(auto layout)巩梢,方便后續(xù)適配到其它尺寸。

第四步艺玲,適配調(diào)試階段括蝠,基于iPhone 6的界面效果,分別向上向下調(diào)試iPhone 6 plus(414pt)和iPhone 5S及以下(320pt)的界面效果饭聚。由此完成大中小三屏適配忌警。

為什么選擇iPhone 6作為基準尺寸?當面對大中小三種屏幕需要適配的時候秒梳,很容易想到先做好一種屏幕法绵,再去適配剩下兩種屏幕。第一個決定是到底以哪種屏幕作為設計和開發(fā)的基準尺寸酪碘。我們選擇中間尺寸的iPhone 6(750px/375pt)作為基準朋譬,基于幾個原因:

從中間尺寸向上和向下適配的時候界面調(diào)整的幅度最小。375pt下的設計效果適配到414pt和320pt偏差不會太大兴垦。假設以414pt為基準做出很優(yōu)雅的設計徙赢,到320pt可能元素之間比例就不是那么回事了,比如圖片和文字之間視覺比例可能失調(diào)探越。

iPhone 6 plus有兩種顯示模式狡赐,標準模式分辨率為1242x2208,放大模式分辨率為1125x2001(即iPhone 6的1.5倍)钦幔≌硖耄可見官方系統(tǒng)里iPhone 6和iPhone 6 plus分辨率之間就存在1.5倍的倍率關系。很多情況下這兩種尺寸可以用1.5倍直接等比適配鲤氢。

1242x2208這個奇葩的數(shù)值是蘋果官方都不愿意公開宣傳的一個分辨率搀庶,不便于記憶和計算柵格拐纱。640x1136雖然是廣泛應用的一個分辨率,但是大屏時代依然以小尺寸為設計基準顯然不合時宜哥倔,設計師會停留在小屏的視角做設計。所以揍庄,iPhone6的750x1334是最適合基準尺寸咆蒿。

只交付一套設計稿,默認用什么規(guī)則來適配蚂子?

前文提到適配策略是先選擇iPhone 6作為基準設計尺寸沃测,然后通過一套適配規(guī)則自動適配到另外兩種尺寸。這套適配規(guī)則總結(jié)起來就一句話:文字流式食茎,控件彈性蒂破,圖片等比縮放。

控件彈性指的是别渔,navigation附迷、cell、bar 等適配過程中垂直方向上高度不變哎媚;水平方向?qū)挾茸兓瘯r喇伯,通過調(diào)整元素間距或元素右對齊的方式實現(xiàn)自適應。這樣屏幕越大拨与,在垂直方向上可以顯示更多內(nèi)容稻据,發(fā)揮大屏幕的優(yōu)勢。

5.屏幕適配的具體實現(xiàn)

設備屏幕是app和用戶交流的直接途徑买喧,控件是屏幕上展示內(nèi)容的直接載體捻悯,所以屏幕的適配就是對控件在不同尺寸設備上的適配。

在iOS開發(fā)中有三種模式:

第一種是利用拖拽直接在Xcode的可視化文件xib上進行布局淤毛,并添加約束今缚;

第二種是利用代碼直接在頁面文件中進行約束;

第三種是利用屏幕的寬高和坐標系進行坐標定位钱床。

隨著iOS設備屏幕尺寸的多樣化荚斯,第三種有了很大的雞肋,并被絕大多數(shù)開發(fā)者拋棄查牌,第一種使用方便事期、快捷,但是要使用到xib文件纸颜,這就導致在團隊協(xié)作開發(fā)中造成很多不必要的麻煩兽泣,而第二種使用起來略微復雜,但是比較利于團隊協(xié)作開發(fā)胁孙,所以目前廣泛使用的適配約束方式是第一種和第二種唠倦。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末称鳞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子稠鼻,更是在濱河造成了極大的恐慌冈止,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件候齿,死亡現(xiàn)場離奇詭異熙暴,居然都是意外死亡,警方通過查閱死者的電腦和手機慌盯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門周霉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亚皂,你說我怎么就攤上這事俱箱。” “怎么了灭必?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵狞谱,是天一觀的道長。 經(jīng)常有香客問我厂财,道長芋簿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任璃饱,我火速辦了婚禮与斤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荚恶。我一直安慰自己撩穿,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布谒撼。 她就那樣靜靜地躺著食寡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪廓潜。 梳的紋絲不亂的頭發(fā)上抵皱,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音辩蛋,去河邊找鬼呻畸。 笑死,一個胖子當著我的面吹牛悼院,可吹牛的內(nèi)容都是我干的伤为。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼据途,長吁一口氣:“原來是場噩夢啊……” “哼绞愚!你這毒婦竟也來了叙甸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤位衩,失蹤者是張志新(化名)和其女友劉穎裆蒸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚂四,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡光戈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了遂赠。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡晌杰,死狀恐怖跷睦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肋演,我是刑警寧澤抑诸,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站爹殊,受9級特大地震影響蜕乡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梗夸,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一层玲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧反症,春花似錦辛块、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胞谈,卻和暖如春尘盼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烦绳。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工卿捎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爵嗅。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓娇澎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親睹晒。 傳聞我的和親對象是個殘疾皇子趟庄,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容