Masonry學習之鏈式屬性

2021-08-13 03:22:06 字數 1183 閱讀 9743

在前面的masonry基本布局中,我們完成了綠、紅和藍三個檢視的布局,masonry的基本布局操作方式大大簡化了蘋果原生的自動布局**。然而,我們還可以更進一步,這就是masonry的鏈式屬性的寫法。

對於綠色檢視,我們之前是這樣寫的:

[greenview makeconstraints:^(masconstraintmaker *make) ];
我們仔細觀察發現,對於綠色檢視而言,其top、left屬性是有一些共同點的,都是相對於superview,偏移也相等,這種情況下,我們就可以使用鏈式屬性的寫法:

// chain attributes

make.top

.and

.left

.equalto(superview).insets(padding);

// which is the equivalent of

// make.top

.greaterthanorequalto(superview).insets(padding);

// make.left

.greaterthanorequalto(superview).insets(padding);

同理,對於紅色檢視:

基本寫法:

[redview mas_makeconstraints:^(masconstraintmaker *make) ];
鏈式寫法:

// chain attributes

make.top

.and

.right

.equalto(superview).insets(padding);

注意,基本寫法中使用的offset有正負的區別,而鏈式寫法中的insets使用的是絕對值,這也簡化了理解。

同理,對於藍色檢視:

基本寫法:

[blueview mas_makeconstraints:^(masconstraintmaker *make) ];
鏈式寫法:

[blueview mas_makeconstraints:^(masconstraintmaker *make) ];
鏈式屬性寫法不僅精簡了**,更簡化了語義,非常好用。

Masonry布局原始碼精講 三 鏈式布局

之前我們分析了如何實現鏈式程式設計,並且大致了解了鏈式程式設計思想在開發中的好處。通過這篇文章,我們來看一下masonry作為經典的鏈式程式設計思想是如何設計的,我們拭目以待。masonry布局設定 masconstraint addconstraintwithlayoutattribute nsl...

iOS開發之Masonry(一)

本文主要介紹masonry的簡單實用,並聯絡如何給控制項新增約束 mas makeconstraints。下面就馬上上 來使用。void viewdidload 1.green view 距離redview底部20,距離父控制項右邊100,自身寬高 200,100 greenview mas mak...

iOS開發之Masonry(三)

本文將介紹masonry另一種設定約束的方法 mas remakeconstraints 意思是重新設定約束。在此之前它會將控制項上的所有約束全部移除,在設定新約束。關鍵 如下 void viewdidload void click 開始執行動畫,設定約束 uiview animatewithdur...