在文章開始先放上幾個連接,是我當時爲了弄清楚AutoLayout看過的比較有幫助的文章:html
http://www.cocoachina.com/ios/20141011/9871.htmlios
http://www.cocoachina.com/ios/20150421/11632.html佈局
https://www.natashatherobot.com/ios-autolayout-scrollview/prototype
Equality, Not Assignment翻譯
「是相等,不是賦值」 ---- 理解這個很是重要,由於賦值是將等式右邊的結果賦給左邊的變量,而相等是讓等式的兩邊結果相等,確實很難用表達式表達這樣一種關係,但在Apple文檔用了=,若是隻是看等式很難知道這其中的奧妙,最關鍵是看Apple的文檔對這個的解釋,即便換作是 == 也很難說明其內在的邏輯關係,==是邏輯判斷,其結果是真或者假,在APPLE 的文檔大概的表達的意思是,依據一組相互做用的約束,使每一個約束的關係(關係包括三種:等於、大於等於和小於等於)兩邊的運算結果知足這種關係。設計
prototype constraintshtm
當咱們把一個視圖拖到場景中時,設計起會默認幫咱們創建若干預先定義的prototype constrains 約束,這種約束是不可見也不能編輯的。當咱們添加一個約束的時候,這種prototype約束就會自動去除,因此咱們要完成全部約束讓這個視圖的自動佈局能正確工做。ci
爲何是Leading和Trailing,而不是left 和 right?文檔
其實left 和 right 都有,可是考慮到閱讀方向的問題,leading 和 Trailing 就很容易理解了,大部分地區和國家的閱讀習慣都是從左到右,可在某些地區仍然保留有從右向左閱讀的習慣,那麼Leading和Trailing表示頭和尾就很容易理解,並且會隨着閱讀方向的調整而自動調整,而left 和 right 確實絕對值,左邊就是左邊,右邊就是右邊。因此使用leading 和 Trailing能夠自適應。it
Intrinsic Content Size, Compression Resistance 和 Content Hugging
Instrinsci Content Size 內在的內容尺寸, 這個能夠參考一下按鈕控件, 按鈕控件中間包裹文字的區域的大小就是Intrinsic Content Size, Compression Resistance 按照翻譯就是抗壓性,而Content Hugging就是抗拉性,能夠想象內容空間由兩股力量做用的結果,一個力量是要撐開空間(Compression Resistance),另一個力量是拉住不讓向外擴張(Content Hugging),當兩個力量共同做用在一個方向上時候,其結果決定了在這個方向上的大小。默認狀況下,抗拉性的優先級別爲250(可理解爲權重),而抗壓性的優先級爲750,因此更傾向於讓內容空間更大。