iOS Masonry 抗壓縮 抗拉伸

2022-07-24 21:33:27 字數 1204 閱讀 2961

約束優先順序: 在autolayout中每個約束都有乙個優先順序, 優先順序的範圍是1 ~ 1000。建立乙個約束,預設的優先順序是最高的1000

content hugging priority: 該優先順序表示乙個控制項抗被拉伸的優先順序。優先順序越高,越不容易被拉伸,預設是250。

content compression resistance priority: 該優先順序和上面那個優先順序相對應,表示乙個控制項抗壓縮的優先順序。優先順序越高,越不容易被壓縮,預設是750

有這樣乙個cell,底部品牌的長度是不固定的,右邊的車系也是不固定,並且車系的高度會自動換行,numberoflines=0;針對這樣的cell布局,若果正常布局,達到的效果如下:

布局部分**:

[self.brandlabel mas_makeconstraints:^(masconstraintmaker *make) ];

[self.cartypelabel mas_makeconstraints:^(masconstraintmaker *make) ];

很明顯這裡的布局屬於約束衝突的情況,想要解決這樣的情況方法也有多種,這裡介紹一種autolayout裡面有乙個叫做抗壓縮 抗拉伸的概念 方法如下:

然後回到我們這次的問題,很明顯右邊的內容過多導致左邊內容顯示不全,那麼利用左邊抗壓縮的概念,提高左邊label水平方向的抗壓縮值,右邊label提高垂直方向抗壓縮值 **如果

[self.brandlabel setcontentcompressionresistancepriority:uilayoutpriorityrequired foraxis:uilayoutconstraintaxishorizontal];  //設定水平方向抗壓縮優先順序高 水平方向可以正常顯示

[self.cartypelabel setcontentcompressionresistancepriority:uilayoutpriorityrequired foraxis:uilayoutconstraintaxisvertical]; //設定垂直方向擠壓縮優先順序高 垂直方向可以正常顯示

設定了抗壓縮後達到了效果如下:

iOS Masonry使用詳解

1 magicnumber autoresizingmask autolayout 以上是純手寫 所經歷的關於頁面布局的三個時期 那如何快速的上手autolayout呢?說實話 當年ios6推出的同時新增了autolayout的特性 我看了一下官方文件和demo 就立馬拋棄到一邊了 因為實在過於的繁...

iOS Masonry實現多個Button對齊布局

在ios開發的時候可能會碰到乙個問題 併排的多個button 我們不知道怎麼用masonry去實現 下面就是用masonry去實現的 void settitlearr nsarray titlearr if arraymut.count 0 lineview uiview alloc init li...

iOS Masonry的簡單使用

最近搭見面嘗試了下masonry,感覺挺不錯的,比手寫frame快多了,又避免了storyboard和xib的複雜約束。這是效果圖 ps 以前看到這樣的就愁死了,各種計算座標,用masonry分分鐘的事。故障記錄 errorrecordingbtn mas makeconstraints masco...