程序員和UI之間逸贾,常常存在著“語言障礙”——其實就是慣用單位不同陨仅,導(dǎo)致語言不通津滞,雞同鴨講眼碌碌。本文將以iOS設(shè)備為例灼伤,做一回程序員與UI的翻譯機触徐。
首先,我們來看一下iOS設(shè)備的屏幕尺寸:
其實從上表就可以看出語言不通的根本原因就在于:程序員是用軟件尺寸(以邏輯點/PT為單位)來編程狐赡,而UI是按硬件尺寸(其實還有個“設(shè)計尺寸”)——也就是屏幕的實際物理尺寸(以像素/PX為單位)來出圖撞鹉。
蘋果在引入第一代Retina設(shè)備開始后,為了不讓原有的應(yīng)用程序在新的Retina屏幕上只占半屏顯示颖侄,將應(yīng)用程序繪制的所有內(nèi)容都在內(nèi)部乘以2鸟雏,不需要作任何代碼改動就可以適配Retina屏。所以程序員一般不會去管硬件尺寸览祖,都是用軟件尺寸來交流孝鹊。可UI不買這賬啊穴墅,他們用的都是用像素來交流的惶室。你要是跟UI說要一顆44*44的按鈕,那他肯定是給你一顆44*44px的玄货。
當(dāng)然你可以跟UI講清楚上面的規(guī)則皇钞,然后看誰妥協(xié)一下,要跟對方溝通時使用“外語”(乘以或除以相應(yīng)的像素密度)松捉。但是更好的辦法是跟UI約定好夹界,讓其使用一倍圖進行設(shè)計,再按相應(yīng)倍數(shù)輸出隘世,這樣溝通時就不需要換算了可柿。還是回到上面的場景,那就變成UI在Sketch里用一倍稿(375*667px的畫布) 畫了一顆44*44px的按鈕丙者,然后輸出成88*88px(@2x)和132*132pc(@3x)的圖片复斥,正好就是我們所需要的44*44pt。
細心的讀者可能已經(jīng)發(fā)現(xiàn)械媒,對于Plus系列機型目锭,其硬件尺寸與軟件尺寸的比例實際上是2.608:1。也就是說纷捞,就硬件而已Plus系列并不是3倍的Retina屏痢虹,而就軟件而言卻是3倍大小。這意味著主儡,應(yīng)用程序使用的軟件屏幕尺寸414px*736px會安裝規(guī)則奖唯,首先映射為1242px*2208px的設(shè)計屏幕尺寸,再降低采樣縮小到適應(yīng)1080px*1920px的實際硬件尺寸投射到屏幕上去糜值,如下圖: