2016年1月27日 星期三

[iOS] AutoLayout 筆記 - 基本知識2

AutoLayou是利用Constraint來決定一個View要在畫面上的哪個位置,並且決定它的大小。

我們必須明確定義這個View的四個值

1. 高
2. 寬
3. 水平距離
4. 垂直距離

如此一來Xcode才不會報錯誤訊息

但是,是任何的View都必須定義這四個值嗎?

這個答案是肯定的,但是在某些情況下你會覺得滿奇怪的。

舉例來說,我現在塞了一個View到我的ViewController,根據上面的規則定義

1. 高  = 100
2. 寬  = 100
3. 水平距離 = 左邊界往右靠12
4. 垂直距離 = 上邊界往下靠12





















這樣是很標準的設定方式,當然XCode也不會報任何的錯誤。

此時我們塞入一個UILabel,只設定,水平與垂直距離試試看






















你會發現,XCode也不會提供任何錯誤訊息,

可是根據上面的定義,不是應該還得設置寬高才是正確的嗎?

事實上並不是你沒有設置寬高,而是有些元件在預設的狀況下就有寬高了,

因此在這種情況下你可以不用特定去針對它們的寬高做設定,除非有必要。

用UILabel來當例子,假設我們強制規定它的寬為100,當文字內容過長時,會發生這樣的情況。



























總結一下

在設置Constraint的時候必須針對寬高,水平與垂直距離做設定,

但是在某些情況下,這個元件有預設的寬高,你可以依照你的需求不做設定,或一樣設定寬高。