天天看點

iOS開發 - Content hugging priority & Content compression resistance priority

1. 什麼是Content hugging priority

你可以把它想象成一根放在視圖上的橡皮筋。

這根橡皮筋會組織視圖超過它本身的固有大小(intrinsic content size)。

它存在一個優先級,從0到1000。

1000表示視圖絕對不能超過intrinsic content size。

我們來看個例子:

iOS開發 - Content hugging priority & Content compression resistance priority

上圖中有兩個橫向排列的标簽控件(label),并且你也已經設定好了限制。

這個會工作正常,直到父視圖變寬的時候。

那麼,問題來了。

如果父視圖變寬了,那個label應該變寬呢?

這個時候正是我們用到Content hugging priority的時候。

擁有高優先級Content hugging priority的視圖控件将不會被拉伸。

你可以把這個優先級想象成橡皮筋的抗拉伸力。

這個優先級越大,視圖将越希望保持自己的固有大小(intrinsic content size)。

2. Content compression resistance priority

和Content hugging priority相反,Content compression resistance priority是用來抵抗壓縮的。

簡單的來說,前者我們讨論過的,是抵抗拉伸,也就是抵抗變大,而後者是抵抗壓縮,也就是抵抗變小。

還是上面的例子中,當父視圖變小的時候,擁有高優先級的label将不會被壓縮,因而标簽上的文本也就不會被截斷。

繼續閱讀