Lyft設(shè)計總監(jiān):移動端響應(yīng)式設(shè)計的高效方法
以前,設(shè)計師們都需要去跟開發(fā)溝通并手動標(biāo)注所有文件,現(xiàn)在,有了像 Zeplin 和 Abstract 這樣實用的標(biāo)注工具,設(shè)計師幾乎不需要花太多的時間在對接上。
但是,還是避免不了很多東西會在對接過程中出現(xiàn)問題。比如,這個按鈕是固定大小的還是彈性大小?是保持底部邊距固定還是在一個較大的對象內(nèi)居中?讓我們來看下約束布局在對接過程中的使用方法。
約束布局是定義控制應(yīng)用中內(nèi)容的規(guī)則。這些規(guī)則通過使用統(tǒng)一的元素和間距,保持跨平臺、跨環(huán)境和跨屏幕大小的一致性。通常應(yīng)用在 iOS 和 Android 中。
彩云注:這里想跟大家科普下相對布局和約束布局的區(qū)別。相對布局是通過相對定位的方式讓控件出現(xiàn)在布局任意位置,相對布局因為邏輯原因,層級較多;而約束布局能夠有效解決布局過多問題,讓頁面更加扁平化,布局之間相對位置也更好控制。約束布局也是繼相對布局后,谷歌官方針對相對布局問題給出的一個更優(yōu)解決方案,意在將來替代掉相對布局。當(dāng)然,這里不再過多闡述,感興趣的可以自行去了解下,可能偏開發(fā)方面會更多一些。
約束條件
如果在 sketch 文件中已經(jīng)設(shè)計布局好了所有元素,就可以開始了!
1. 基礎(chǔ)單位
首先從定義基本單位開始,每個度量值都是其倍數(shù)。我建議使用偶數(shù) 8 來調(diào)整大小和間距,因為這樣可以方便且一致地適配各種設(shè)備。
- 8 更容易整除!10/4=2.5 vs 8/4=2
- 大多數(shù)流行的屏幕尺寸都可以被 8 整除,這樣更容易適配(與 6 或 10 相比)
- 分辨率為 1.5 倍的設(shè)備很難清晰地顯示像素為奇數(shù)的,若按 1.5 倍縮放 5 個像素就會導(dǎo)致半像素偏移。
在 Sketch 中選擇首選項>畫布,將“通過 Shift+方向鍵調(diào)整移動對象中的 10px 改成 8px”,這樣會解決很多問題!
2. 間隔單位
間隔單位是常用間距的視覺表達(dá)。例如,一個“2 間隔單元”是 16 pt/dp,因為 2×8=16。這些符號應(yīng)該在設(shè)計中使用,別名應(yīng)該被標(biāo)注成代碼,以便在和開發(fā)對接時使用相同的語言。
在項目很趕的時候,你可能沒有足夠的時間手動做到完美像素對齊。通過使用這些通用單位來標(biāo)識,而不是標(biāo)注工具自動生成的標(biāo)注像素,它可以告訴開發(fā)實際間距。數(shù)字別名與“Shift +方向鍵”移動對象的次數(shù)相匹配。
間隔大小永遠(yuǎn)不會改變。如果是水平間隔,則垂直高度被鎖定,反之亦然。這意味著在不同的手機(jī)寬度上,組件的尺寸會發(fā)生變化,但用于創(chuàng)建它的邊距的間距將保持不變。
對齊指標(biāo)
有時元素在間隔之間對齊。間隔之間對齊的主要方法是中心對齊和底部對齊。
中心對齊是指你想要一個對象或一組對象向中間集中對齊。對象可以水平居中,垂直居中,或者向中間集中對齊。
底部對齊
底部對齊是指希望對象與其中一個對象的底部對齊。當(dāng)有兩種不同的文本大小并且想要在基線處對齊時,底部對齊就是比較常見使用方法。
1. 點(diǎn)擊對象
在手機(jī)上,最小點(diǎn)擊對象尺寸為 48x48dp /pt。這尺寸來自于谷歌設(shè)計指南,物理尺寸約等于 12 英寸。(HIG 建議使用 44x44pt,所以我選擇更大的)。將元素放在一起時考慮點(diǎn)擊對象大小。你也可以使用點(diǎn)擊對象符號來表示元素的哪些部分是可點(diǎn)擊的。
組件布局
讓我們通過一些組件示例切換來測試所有約束的使用:
2. 基本尺寸
組件的基本尺寸,它的最小高度和寬度,應(yīng)該基于最小點(diǎn)擊對象的尺寸。視覺上小于點(diǎn)擊對象的組件仍應(yīng)由相同的最小點(diǎn)擊對象大小觸發(fā)。這意味著,如果用戶在復(fù)選框之外觸摸了一點(diǎn),也會承認(rèn)他們點(diǎn)擊了復(fù)選框。
組件相對于最小點(diǎn)擊對象的視覺尺寸:精確、高于和低于。
3. 內(nèi)邊距
使用間隔表示組件內(nèi)的邊距。
你可以通過設(shè)置水平邊距來限制元素的水平位置,比如文本框。當(dāng)文本太長時,你需要指出文本是否應(yīng)該調(diào)整大小、換行和/或截斷。換行到兩行比截斷一行更好!
垂直填充最常用于動態(tài)適配。盡管組件在當(dāng)前手機(jī)尺寸、當(dāng)前語言和當(dāng)前字體大小下看起來可能很好——但所有這些因素都是最壞情況下的變量。當(dāng)類型增加時,組件將變得比它的基本大小更大,并且你希望確保它仍然有垂直填充。
4. 基線對齊
使用居中和基線標(biāo)記來示意,如何讓那些沒有接觸到所有邊的間隔元素表現(xiàn)出來。這部分主要是方便給開發(fā)理解的。
垂直居中的列表項文本、底部對齊的價格和居中的復(fù)選框
界面布局
現(xiàn)在你已經(jīng)布局好了一個頁面,使用與在組件中相同的方式使用間隔、點(diǎn)擊目標(biāo)和對齊符號。
……瞧!這就是移動端的響應(yīng)式布局!
提示:為你在界面布局中引用的組件創(chuàng)建單獨(dú)的 symbol 畫板。在組件中,將所有組件規(guī)范包含在一個文件夾中,該文件夾可以輕松打開和關(guān)閉。沒有什么比同時標(biāo)記組件和界面布局更好了。
總結(jié)
即使是一個精心制作的交接文件也不能取代你與開發(fā)之間良好的語言交流。這應(yīng)該與開始、移交和書面文檔一起使用。你越讓開發(fā)了解你的設(shè)計,還原的結(jié)果就越接近實際發(fā)布的產(chǎn)品。