• UI 設計
  • 更新:2026-07-14
  • 初版:2016-04-08

UI 設計師看 Auto Layout

我買了 Simon Ng 寫的 iOS 9 App程式設計實力超進化實戰攻略 (Beginning iOS 9 Programming with Swift) ,學習怎麼用 Xcode 和 Swift 做 App。

這本書非常推薦設計師和完全不懂程式的初學者購買,前幾章都在講 Xcode 的 GUI 操作和實例,跟著範例自己做個會動的頁面出來很有成就感,能學到很多。

UI 設計師要懂 Auto Layout


我跟著書裡第 5 章範例做的 Auto Layout 練習,有置中的標題、置中的按鈕,和底部偏右方對齊的文字。

左,iPhone 4s ,標題和 Hello World 按鈕 置中,但畫面長度不夠下方文字沒有顯示。
中,iPhone 5s ,標題和 Hello World 按鈕 置中,下方文字置右,一切正常。
右,iPhone 6s ,標題偏左、按鈕偏左、文字位置也跑掉了。

UI 設計師都知道要給工程師的標示文件上需要寫明尺寸、間距等等,iOS 可以給座標。但在不同手機尺寸下,給座標就會出現上圖那樣的情況。

先來解決不同尺寸下元件位置會跑掉的問題,就要使用 Auto Layout 啦。(暫時跳過 Portrait 和 Landscape 的畫面變化,以及 Universal App。)

對齊與定位

其實看到這 2 個工具大概就猜得出工程師會怎麼設定 Auto Layout 了吧。(雖然工程師都寫 Code 直接處理,但拿 GUI 出來講總是比較容易被看懂。)

  • Align:對齊。建立一個對齊的約束條件,ex 元件置中對齊。
  • Pin:定位。建立間距約束條件,ex 元件上、右、下、左的間距。

所以設計師出標示文件給工程師的時候,需要寫明對齊方式和定位。比如 A 和 B 之間距離多少?置中還是置左?某元件如果要固定在左下角是不是要標明距離左和下的數值…等等

實例

因為尺寸不同所以版面跑位的情況,可以透過設定 Auto Layout 解決。設好後 Storyboard 會出現幾條輔助線。

標題


不管螢幕尺寸變化,標題都希望要置中,且距離頂端的位置要固定。

按鈕


按鈕設為「水平對齊」、「垂直對齊」。這樣不管在哪種螢幕尺寸下它都在正中間。

文字


文字設定距離右邊和距離底部的尺寸,不管螢幕尺寸變化,這行文字都會固定在右下角。

ma…這就產生一個新的問題,比如 avocode 和 zeplin 這類不用設計師出標示文件的好用外掛,如何讓工程師知道在不同螢幕尺寸下,各元件的位置呢?設計師哪有這麼勤勞針對各種螢幕尺寸出一堆原始檔。

看是要拼一定點另外寫份標示文件,或是乾脆放手讓工程師處理掉了吧。

延伸思考

Auto Layout 不只能處理各種螢幕尺寸下元件位置的版面問題,Portrait 和 Landscape (手機轉橫或轉直)間的切換也可以用它來處理,甚至 Universal App(iPhone 和 iPad 同一支 app 程式),iPhone 和 iPad 之間的 Responsive 也可以透過 Auto Layout 搞定。

嗯,這就來討論下 1. 為什麼 Landscape 要用 Auto Layout,2. 為什麼 Universal App 要用 Auto Layout。

為什麼 Landscape 要用 Auto Layout

從使用者的操作,簡單分成 2 種可能性。

1.手機轉橫是為了看更大的畫面,比如 Safari。
2.手機轉橫會觸發不同的功能。(可參考舊文:Portrait 和 Landscape,談螢幕方向

如果是為了看更大的畫面,功能元件幾乎相同,用 Auto Layout 我覺得很方便省事。

如果會觸發不同功能甚至換個介面,那用 Auto Layout 想幹嘛?當然是刻個新的 UI 啊!

為什麼 Universal App 要用 Auto Layout。

同上方的理由,iPad 的介面和 iPhone 的介面會完全一樣嗎?iPad 螢幕比 iPhone 大那麼多,操作情境、功能複雜度不會一樣。

而且,在開啟 App 時就判定 App 被裝在哪種裝置上,讀取 iPad 或 iPhone 的程式碼,都比用 Auto Layout 乾脆實在啊。

.
.
.

Auto Layout 入門教學 一文說明介紹 Xcode Auto Layout 設定方式、詳細操作等,可以去看這個網頁喔!

更多文章

wave
Adobe XD 製圖版面尺寸
Adobe XD 製圖版面尺寸

粉絲團有學生跑來問:「老師~為什麼 Adobe XD 預設的手機尺寸和官方文件數值不一樣啊!?我要聽哪個的?」

呃…這和解析度有關…

iOS 11 關於 iPhoneX 的尺寸與版面
iOS 11 關於 iPhoneX 的尺寸與版面

每次 Apple 發表會結束,出現新版的 macOS 或 iOS 時,我都很想仰天大喊「殺~人~喔~」。這次 iOS 11 當然有改新東西,但變化最大的是 iPhoneX 。

發表會一結束就跑去看 Guidelines 是 UI 設計師必備行為。

iOS 解析度製圖設定

有人跟我提到:「iOS 在 psd 設計時解析度建議設為 144,這樣文字大小才會是正確的」。當年 iPhone4 剛出的某個晚上我和老公躺在床上聊 iOS 變 2x 了會遇到什麼狀況。聊著聊著兩人就槓上吵架了,也不管當時是凌晨兩點,通通爬起來開燈開電腦,一個翻出 Photoshop、一個翻出 Xcode,打字、設定字型字級、拿出 iPhone 設定一樣的字型字級。之後,我的製圖習慣一直使用 72 dpi

iPhone 6 及 Plus 製圖建議

iPhone 6 和 Plus 新機一發表,群裡就有人跑來哀號說老闆叫他準備 iPhone6 的適配,可現在什麼文檔都沒有完整啊!在很多細節不明的情況下,我只能建議這種最保險安全的作法:做 @1x,放大給 @2x 和 @3x 用。以下情境預設為做一套 Mockup 要切出各種尺寸的圖。

Akane Lee

Akane Lee

內心戲小劇場超多!每個事件背後,都有無數個為什麼,天天和自己的腦內聲音吵架。

Comments

wave
comments powered by Disqus

Press ESC to close