iOS-屏幕適配基本概念

iOS設(shè)備的分辨率和尺寸(參考The Ultimate Guide To iPhone Resolutions)

分辨率

  • 點(diǎn)(point): 開(kāi)發(fā)過(guò)程中,所有基于坐標(biāo)系的繪制都以point為單位伟众,point和屏幕上的像素是一一對(duì)應(yīng)的

  • 渲染像素(Render Pixels):以point為單位繪制最終渲染成pixels舍沙,這個(gè)過(guò)程被稱(chēng)為光柵化胚嘲,基于point的坐標(biāo)系乘以比例因子可以得到基于像素的坐標(biāo)系陶冷,高比例因子會(huì)使更多的細(xì)節(jié)展示,目前的比例因子會(huì)是1x,2x青伤,3x

  • 物理像素(Physical Pixels): 設(shè)備屏幕實(shí)際像素

  • 設(shè)備屏幕的物理長(zhǎng)度(Physical Device):設(shè)備的物理長(zhǎng)度,使用英寸作為單位殴瘦,比如iPhone8是4.7英寸狠角,iPhone11是6.1英寸等,這里的數(shù)字是指手機(jī)屏幕對(duì)角線的物理長(zhǎng)度蚪腋,實(shí)際上會(huì)是Physical Pixels的像素值會(huì)渲染到該屏幕丰歌,而不是Render Pixels的像素值,屏幕上會(huì)有PPI(Pixels-per-inch)的特性屉凯,PPI的值告訴你每英寸會(huì)有多少像素渲染

iOS 各個(gè)設(shè)備對(duì)應(yīng)的分辨率

機(jī)型 屏幕寬高(point) 渲染像素(pixel) 物理像素(pixel) 屏幕對(duì)角線長(zhǎng)度(英寸) 屏幕模式
Phone 5,5s,5c,se 320 * 568 640 * 1136 640 * 1136 4(326 PPI) 2x
Phone 6,6s,7,8 375 × 667 750 * 1334 750 * 1334 4.7(326PPI) 2x
Phone 6p,6sp,7p,8p 414 * 736 1242 * 2208 1080 * 1920 5.5(401PPI) 3x
Phone X,Xs,11Pro 375 * 812 1125*2436 1125*2436 5.8(458PPI) 3x
Phone 11,Xr 414*896 828*1792 828*1792 6.1(326PPI) 2x
Phone 11Pro Max,Xs Max 414*896 1242 *2688 1242 *2688 6.5(458PPI) 3x
iPad 4,5,Air,Air2立帖,mini3,mini4 1024×768 2048×1536 2048×1536 9.7(264ppi) 2x
iPad Pro 1366*1024 2732×2048 2732×2048 12.9(264ppi) 2x

屏幕模式(1x, 2x, 3x):描述的就是屏幕中一個(gè)點(diǎn)有多少個(gè) Rendered Pixels 渲染悠砚,對(duì)于2倍屏(又稱(chēng) Retina 顯示屏)晓勇,會(huì)有 2 * 2 = 4 個(gè)像素的面積渲染,對(duì)于3倍屏(又稱(chēng) Retina HD 顯示屏),會(huì)有 3 * 3 = 9 個(gè)像素的面積渲染

iOS 開(kāi)發(fā)中绑咱,所有控件的坐標(biāo)以及控件大小都是以點(diǎn)為單位的绰筛,假如我在屏幕上需要展示一張 20 * 20 (單位:point)大小的圖片,那么設(shè)計(jì)師應(yīng)該怎么給我圖呢描融?

這里就會(huì)用到屏幕模式的概念铝噩,如果屏幕是 2x,那么就需要提供 40 * 40 (單位: pixel)大小的圖片窿克,如果屏幕是 3x骏庸,那么就提供 60 * 60 大小的圖片,且圖片的命名需要遵守以下規(guī)范:

Standard:<device_modifier>.<filename_extension>
High resolution:@2x<device_modifier>.<filename_extension>
High HD resolution:@3x<device_modifier>.<filename_extension>

ImageName: 圖片名字年叮,根據(jù)場(chǎng)景命名
device_modifier: 可選敞恋,可以是 ~ipad 或者 ~iphone, 當(dāng)需要為 iPad 和 iPhone 分別指定一套圖時(shí)需要加上此字段
filename_extension: 圖片后綴名,iOS中使用 png 圖片

例如:
MyImage@2x.png - 2x 顯示屏自動(dòng)加載的圖片版本
MyImage@3x.png - 3x 顯示屏自動(dòng)加載的圖片版本
MyImage@2x~iphone.png - 2x iPhone 和 iPod touch 顯示屏自動(dòng)加載的圖片版本
MyImage@3x~iphone.png - 3x iPhone and iPod 顯示屏自動(dòng)加載的圖片版本


設(shè)計(jì)和開(kāi)發(fā)之間的多屏適配問(wèn)題

現(xiàn)在iPhone的屏幕尺寸也不再單一谋右,那么現(xiàn)在以怎樣的流程來(lái)進(jìn)行iOS的研發(fā)更合適呢硬猫?

一個(gè)基本思路是:
選擇一種尺寸作為設(shè)計(jì)和開(kāi)發(fā)基準(zhǔn)
定義一套適配規(guī)則,自動(dòng)適配剩下兩種尺寸
特殊適配效果給出設(shè)計(jì)效果

這個(gè)問(wèn)題很早之前在知乎上已經(jīng)被討論改执,附上鏈接:手機(jī)淘寶設(shè)計(jì)師pigtwo的回答

多屏適配規(guī)范

  • 文字流式
  • 控件彈性
  • 圖片等比縮放
多屏適配.jpg

控件彈性指的是啸蜜,navigation、cell辈挂、bar等適配過(guò)程中垂直方向上高度不變衬横;水平方向?qū)挾茸兓瘯r(shí),通過(guò)調(diào)整元素間距或元素右對(duì)齊的方式實(shí)現(xiàn)自適應(yīng)终蒂。這樣屏幕越大蜂林,在垂直方向上可以顯示更多內(nèi)容,發(fā)揮大屏幕的優(yōu)勢(shì)


關(guān)于xib拇泣、storyboard噪叙、代碼

xib和StoryBoard

  • xib:每個(gè)viewcontroller對(duì)應(yīng)單獨(dú)的xib,可以更加方便單獨(dú)管理霉翔,項(xiàng)目也方便多人一起開(kāi)發(fā)睁蕾,改動(dòng)視圖方便,不用全局改動(dòng)

  • StoryBoard:StoryBoard是一個(gè)包含了多個(gè)xib的文件债朵,管理方便子眶,在StoryBoard中不僅可以看到每個(gè) ViewController的布局樣式,也可以知道各個(gè)ViewController之間的轉(zhuǎn)換關(guān)系

  • 區(qū)別

    • 項(xiàng)目大的話序芦,xib文件過(guò)多臭杰,不容易統(tǒng)一管理。跳轉(zhuǎn)只能在代碼實(shí)現(xiàn)谚中,比較混亂
    • StoryBoard適合單獨(dú)開(kāi)發(fā)并且是中小型項(xiàng)目的時(shí)候使用

xib和代碼區(qū)別

  • xib優(yōu)缺點(diǎn)

    • xib可視化渴杆,開(kāi)發(fā)速度快射窒,代碼量少
    • 合作開(kāi)發(fā),彼此閱讀困難将塑,無(wú)法在git上查看歷史改動(dòng)脉顿,容易造成沖突,造成沖突后難以解決点寥,容易產(chǎn)生不必要的commit
    • 性能上艾疟,xib加載慢,打開(kāi)速度也慢敢辩,而且會(huì)占用app包的體積
  • 代碼優(yōu)缺點(diǎn)

    • 靈活蔽莱,方便,所有的屬性都可以通過(guò)代碼來(lái)控制戚长,簡(jiǎn)單來(lái)說(shuō)盗冷,xib 能做的,純代碼都能做而他們不能做的同廉,純代碼也能做
    • 對(duì)大型項(xiàng)目仪糖、團(tuán)隊(duì)開(kāi)發(fā)都很友好,尤其是在版本控制迫肖,代碼管理方面锅劝。唯一的缺點(diǎn)就是繁瑣以及代碼量大
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蟆湖,隨后出現(xiàn)的幾起案子故爵,更是在濱河造成了極大的恐慌,老刑警劉巖隅津,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诬垂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡伦仍,警方通過(guò)查閱死者的電腦和手機(jī)结窘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)呢铆,“玉大人晦鞋,你說(shuō)我怎么就攤上這事」卓耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵线定,是天一觀的道長(zhǎng)娜谊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)斤讥,這世上最難降的妖魔是什么纱皆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任湾趾,我火速辦了婚禮,結(jié)果婚禮上派草,老公的妹妹穿的比我還像新娘搀缠。我一直安慰自己,他們只是感情好近迁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布艺普。 她就那樣靜靜地躺著,像睡著了一般鉴竭。 火紅的嫁衣襯著肌膚如雪歧譬。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天搏存,我揣著相機(jī)與錄音瑰步,去河邊找鬼。 笑死璧眠,一個(gè)胖子當(dāng)著我的面吹牛缩焦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播责静,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼舌界,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了泰演?” 一聲冷哼從身側(cè)響起呻拌,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎睦焕,沒(méi)想到半個(gè)月后藐握,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垃喊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年猾普,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片本谜。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡初家,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乌助,到底是詐尸還是另有隱情溜在,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布他托,位于F島的核電站掖肋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赏参。R本人自食惡果不足惜志笼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一沿盅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纫溃,春花似錦腰涧、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至郎楼,卻和暖如春万伤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呜袁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工敌买, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阶界。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓虹钮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親膘融。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芙粱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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