產品導航
  • 標簽印刷
    標牌
    金屬銘牌
    標簽
  • 膠粘制品
    膠帶產品
    膠水產品
    底涂劑
  • 研磨用品
  • 反光材料
    車身安全
    交安產品
    商業反光
    其他
  • 安全防護
    眼部防護
    聽力防護
    呼吸防護
    身體防護
    手部防護
  • 汽車用品
    汽車售后市場
    車用精品
  • 凈水系統
  • 隔音降噪
公司電話:027-84896969
郵箱:bd@bonder.com.cn

iOS自動布局框架-Masonry詳解

 二維碼
發表時間:2018-11-01 00:00

目前iOS開發中大多數頁面都已經開始使用Interface Builder的方式進行UI開發了,但是在一些變化比較復雜的頁面,還是需要通過代碼來進行UI開發的。而且有很多比較老的項目,本身就還在采用純代碼的方式進行開發。

而現在iPhone和iPad屏幕尺寸越來越多,雖然只需要根據屏幕點進行開發,而不需要基于像素點進行UI開發。但如果在項目中根據不同屏幕尺寸進行各種判斷,寫死坐標的話,這樣開發起來是很吃力的。

所以一般用純代碼開發UI的話,一般都是配合一些自動化布局的框架進行屏幕適配。蘋果為我們提供的適配框架有:VFL、UIViewAutoresizing、Auto Layout、Size Classes等。

其中Auto Layout是使用頻率較高的布局框架,但是其也有弊端。就是在使用NSLayoutConstraint的時候,會發現代碼量很多,而且大多都是重復性的代碼,以于好多人都不想用這個框架。

后來Github上的出現了基于NSLayoutConstraint封裝的第三方布局框架Masonry,Masonry使用起來非常方便,本篇文章就詳細講一下Masonry的使用。

Masonry介紹

這篇文章只是簡單介紹Masonry,以及Masonry的使用,并且會舉一些例子出來。但并不會涉及到Masonry的內部實現,以后會專門寫篇文章來介紹其內部實現原理,包括順便講一下鏈式語法。

什么是Masonry

Masonry是一個對系統NSLayoutConstraint進行封裝的第三方自動布局框架,采用鏈式編程的方式提供給API。系統AutoLayout支持的操作,Masonry都支持,相比系統API功能來說,Masonry是有過之而無不及。

Masonry采取了鏈式編程的方式,代碼理解起來非常清晰易懂,而且寫完之后代碼量看起來非常少。之前用NSLayoutConstraint寫很多代碼才能實現的布局,用Masonry少一行代碼就可以搞定。下面看到Masonry的代碼就會發現,太簡單易懂了。

Masonry是同時支持Mac和iOS兩個平臺的,在這兩個平臺上都可以使用Masonry進行自動布局。我們可以從MASUtilities.h文件中,看到下面的定義,這就是Masonry通過宏定義的方式,區分兩個平臺獨有的一些關鍵字。




官方公眾號
武漢幫德科技
官方抖音號
幫德BonDer
<tt id="oh09r"></tt>
<samp id="oh09r"><big id="oh09r"></big></samp>