利用 Reverse first and second item 調整 Auto Layout 的 constant

使用 Auto Layout 設定條件時,Constraint 的 Constant 欄位常常用於設定間距,比方下圖 Constant 的 10 代表 Peter 的右邊界和 Safe Area 的右邊界有著 10 points 的間距。(ps: 假設系統設定由左到右的語言,比方中文,因此 Trailing 代表右邊)

不過最近有同學問彼得潘,為什麼他的 constant 是負數呢 ?

以下圖為例,constant 欄位竟然是小於 0 的 -10。

constant 的確可以是負數。上圖的意思是 Peter.Trailing 等於 Safe Area.Trailing * 1 — 10。換句話說,Peter 的右邊界等於 Safe Area 的右邊界 — 10,因此 Peter 的右邊界和 Safe Area 的右邊界有著 10 points 的間距。

不喜歡看到負數,想要 constant 是正數也很簡單。只要顛倒 First Item 和 Second Item 即可。

請點選 First Item 或 Second Item,然後再點選 Reverse First And Second Item。

顛倒後 Constant 變成了正數,條件變成 Safe Area 的右邊界等於 Peter 的右邊界 + 10,它的意思其實跟顛倒前的條件 Peter 的右邊界等於 Safe Area 右邊界 — 10一模一樣。

我們也可以用生活中的例子對比,比方 Peter 身高 180,Hook 身高 170,形容他們的身高差距時,以下兩種說法是一樣的意思。

  • Peter 的身高是 Hook 的身高 + 10。
  • Hook 的身高是 Peter 的身高 — 10。

因此 constant 是正是負,其實只是 First Item 和 Second Item 的順序造成的影響。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com