跟UI好好說話
程式設計師和UI之間,常常存在著“語言障礙”——其實就是慣用單位不同,導致語言不通,雞同鴨講眼碌碌。本文將以iOS裝置為例,做一回程式設計師與UI的翻譯機。
首先,我們來看一下iOS裝置的螢幕尺寸:
其實從上表就可以看出語言不通的根本原因就在於:程式設計師是用軟體尺寸(以邏輯點/PT為單位)來程式設計,而UI是按硬體尺寸(其實還有個“設計尺寸”)——也就是螢幕的實際物理尺寸(以畫素/PX為單位)來出圖。
蘋果在引入第一代Retina裝置開始後,為了不讓原有的應用程式在新的Retina螢幕上只佔半屏顯示,將應用程式繪製的所有內容都在內部乘以2,不需要作任何程式碼改動就可以適配Retina屏。所以程式設計師一般不會去管硬體尺寸,都是用軟體尺寸來交流。可UI不買這賬啊,他們用的都是用畫素來交流的。你要是跟UI說要一顆44*44的按鈕,那他肯定是給你一顆44*44px的。
當然你可以跟UI講清楚上面的規則,然後看誰妥協一下,要跟對方溝通時使用“外語”(乘以或除以相應的畫素密度)。但是更好的辦法是跟UI約定好,讓其使用一倍圖進行設計,再按相應倍數輸出,這樣溝通時就不需要換算了。還是回到上面的場景,那就變成UI在Sketch裡用一倍稿(375*667px的畫布) 畫了一顆44*44px的按鈕,然後輸出成88*88px(@2x)和132*132pc(@3x)的圖片,正好就是我們所需要的44*44pt。
細心的讀者可能已經發現,對於Plus系列機型,其硬體尺寸與軟體尺寸的比例實際上是2.608:1。也就是說,就硬體而已Plus系列並不是3倍的Retina屏,而就軟體而言卻是3倍大小。這意味著,應用程式使用的軟體螢幕尺寸414px*736px會安裝規則,首先對映為1242px*2208px的設計螢幕尺寸,再降低取樣縮小到適應1080px*1920px的實際硬體尺寸投射到螢幕上去,如下圖:
相關文章
- 工作當中需要好好說話
- 過元宵:你們程式設計師能不能好好說話啊程式設計師
- Day7-第7期主題拆書訓練營《好好說話》
- 好好說說Java中的常量池之Class常量池Java
- Redis快取穿透、快取雪崩、快取擊穿好好說說Redis快取穿透
- Oracle跟蹤會話Oracle會話
- 會話跟蹤技術會話
- 給會話開跟蹤會話
- oracle session(會話) 跟蹤OracleSession會話
- 會話級SQL跟蹤會話SQL
- 論跟程式設計師談話的技巧:千萬不要跟程式設計師說,你的程式碼有bug程式設計師
- 白話說框架框架
- 話說快取快取
- 會話跟蹤技術Cookieless會話Cookie
- 讓Java說話! (轉)Java
- 10046 跟蹤其他會話會話
- 好好聊聊原型原型
- 好好做程式?
- 10046事件跟蹤會話sql事件會話SQL
- 聽,是版本在說話
- 為Java說句公道話Java
- 別再說Python沒有列舉型別了,好好看看Python型別
- 首個支援普通話和方言混說的TTS大模型:河南話、上海話、粵語說得溜TTS大模型
- oracle 跟蹤當前使用者會話Oracle會話
- 跟谷歌測試工程師的對話谷歌工程師
- 使用sql trace工具和tkprof來跟會話SQL會話
- oracle10g會話跟蹤處理Oracle會話
- Ian Bicking:跟Python說再見Python
- 話說Oracle 的JDE 產品..Oracle
- 1009 說反話
- SAP WebClient UI的會話重啟原理WebclientUI會話
- 2-78. 製作對話的 UIUI
- 用Oracle跟蹤診斷掛起的會話Oracle會話
- 好的程式碼可以自己說話!
- 說來話長的 Javascript 原型鏈JavaScript原型
- DateUtils(話不多說直接上程式碼)
- 白話說https執行原理HTTP
- 話說智慧指標發展之路指標