定義內在內容大小

在自動佈局之前,你總是必須通過設定框架或邊界屬性或通過在 Interface Builder 中調整它們來告訴按鈕和其他控制元件應該有多大。但事實證明,大多數控制元件完全能夠根據內容確定所需的空間。

一個標籤,知道它有多寬高的,因為它知道已在其上設定文字的長度,以及對該文字的字型大小。同樣,對於一個按鈕,可能會將文字與背景影象和一些填充相結合。

對於分段控制元件,進度條和大多數其他控制元件也是如此,儘管有些控制元件可能只有預定高度但未知寬度。

這被稱為內在內容大小,它是自動佈局中的一個重要概念。自動佈局會詢問你的控制元件需要多大,並根據該資訊佈置螢幕。

通常你想使用 intrinsic content size,但在某些情況下你可能不想這樣做。你可以通過在控制元件上設定顯式寬度或高度約束來防止這種情況。

想象一下,如果影象比螢幕大得多,在 UIImageView 上設定影象時會發生什麼。你通常希望為影象檢視提供固定的寬度和高度並縮放內容,除非你希望檢視調整為影象的尺寸。

參考: https//www.raywenderlich.com/115444/auto-layout-tutorial-in-ios-9-part-2-constraints