No.1: 關(guān)于 translatesAutoresizingMaskIntoConstraints 屬性的設(shè)置
Discussion:
如果該屬性值為 YES, 系統(tǒng)會創(chuàng)建一組由視圖的 autoresizing mask 指定行為的約束副本, 它允許你使用試圖的 frame, bounds, 或者 center 屬性來修改視圖的大小和位置, 允許你創(chuàng)建一個靜態(tài)的, 自動的布局框架.
注意 autoresizing mask 約束完全指定了視圖的大小和位置; 因此, 不能添加額外的約束來修改它的大小和位置而不引入沖突. 如果你想使用 Auto Layout 來動態(tài)得計算視圖大小和尺寸, 就必須把該屬性設(shè)置為 NO, 然后為視圖設(shè)置一個非模棱兩可, 無沖突的約束.
默認情況下, 代碼創(chuàng)建的視圖該屬性為 YES, 通過 Interface Builder (Xib / Storyboard) 創(chuàng)建的視圖, 系統(tǒng)會自動設(shè)置該屬性為 NO.
總結(jié): 平時在使用 Snapkit 等第三方庫手擼約束時, 一定要記得設(shè)置 View 的 translatesAutoresizingMaskIntoConstraints = NO;