1. Intrinsic Content
在使用AutoLayout的時候,UILabel 我們只需要設(shè)定他的position,不需要設(shè)置寬高,而一個自定義的UIView,我們不僅僅需要位置,還需要設(shè)定寬高,這是為什么呢?
每一個View 都有一個特別的屬性叫做Intrinsic Content Size,這個可以理解成是一個View的最合適而且最小的寬度和高度。對于UILabe來說,就是至少得把我設(shè)定的文字都顯示完整吧,所以系統(tǒng)只需要知道UILabel的位置。而UIView的Intrinsic Content是(0,0)所以需要設(shè)置UIView的寬高(或是設(shè)定周圍的邊距等等其他關(guān)系可以讓系統(tǒng)知道這個View應(yīng)該多寬,多高)。而Intrinsic Content Size,也是未來自定義View顯示到Xcode中必須設(shè)置的屬性之一。
注意??:TodayView中 如果沒有設(shè)置Bottom Layout Guide相關(guān)的Constraint,view的intrinsic content會跟屏幕分辨率一樣
2. Steps of Display
在Autolayout中, 顯示一個view的步驟分為三步
- Update Constraints
- Layout Views
- Display
一般來說layoutSubviews負責(zé)布局,比如調(diào)整View之間的距離,大小,drawRect負責(zé)繪制,比如使用什么顏色。而AutoLayout則是在layout之前增加了一個設(shè)定約束的過程,也就是上面提到了update constraints。