定義內在內容大小
在自動佈局之前,你總是必須通過設定框架或邊界屬性或通過在 Interface Builder 中調整它們來告訴按鈕和其他控制元件應該有多大。但事實證明,大多數控制元件完全能夠根據內容確定所需的空間。
一個標籤,知道它有多寬高的,因為它知道已在其上設定文字的長度,以及對該文字的字型大小。同樣,對於一個按鈕,可能會將文字與背景影象和一些填充相結合。
對於分段控制元件,進度條和大多數其他控制元件也是如此,儘管有些控制元件可能只有預定高度但未知寬度。
這被稱為內在內容大小,它是自動佈局中的一個重要概念。自動佈局會詢問你的控制元件需要多大,並根據該資訊佈置螢幕。
通常你想使用 intrinsic content size
,但在某些情況下你可能不想這樣做。你可以通過在控制元件上設定顯式寬度或高度約束來防止這種情況。
想象一下,如果影象比螢幕大得多,在 UIImageView 上設定影象時會發生什麼。你通常希望為影象檢視提供固定的寬度和高度並縮放內容,除非你希望檢視調整為影象的尺寸。
參考: https : //www.raywenderlich.com/115444/auto-layout-tutorial-in-ios-9-part-2-constraints