Autolayout 小記

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。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容