Masonry的適配

1.為什么選擇Masonry

? ? iOS的自動布局,可以使用xib/storyboard和frame(即代碼)來適配。對于xib/storyboard來說iPhone現(xiàn)在屏幕有4種尺寸,如果要針對不同屏幕進(jìn)行調(diào)整,用xib的話會比較麻煩,而且后期的維護(hù)工作將會非常的麻煩,xib適合一些布局簡單而且經(jīng)常不變的界面。如果用純代碼,可以在代碼中統(tǒng)一調(diào)整,但是用代碼的話也是麻煩,到處計算高度、寬度等,千萬大量代碼的冗余,對維護(hù)和開發(fā)的效率都很低。

? ? 所以在這里介紹純一個代碼自動布局的第三方庫:Masonry。這個庫使用率相當(dāng)高,在全世界都有大量的開發(fā)者在使用,其star數(shù)量也是相當(dāng)高的。

下載地址:github.com/CoderJackyHuang/MasonryDemo


1.1Masonry支持的一些屬性

@property?(nonatomic,?strong,?readonly)?MASConstraint?*left;左側(cè)

@property?(nonatomic,?strong,?readonly)?MASConstraint?*top上側(cè)

@property?(nonatomic,?strong,?readonly)?MASConstraint?*right;右側(cè)

@property?(nonatomic,?strong,?readonly)?MASConstraint?*bottom;下側(cè)

@property?(nonatomic,?strong,?readonly)?MASConstraint?*leading;首部

@property?(nonatomic,?strong,?readonly)?MASConstraint?*trailing;尾部

@property?(nonatomic,?strong,?readonly)?MASConstraint?*width;寬

@property?(nonatomic,?strong,?readonly)?MASConstraint?*height;高

@property?(nonatomic,?strong,?readonly)?MASConstraint?*centerX;橫向居中

@property?(nonatomic,?strong,?readonly)?MASConstraint?*centerY;縱向居中

@property?(nonatomic,?strong,?readonly)?MASConstraint?*baseline;文本基線

這些屬性與NSLayoutAttrubute的屬性是一樣的,比如NSLayoutAttrubuteLeft,NSLayoutAttrubuteTop,NSLayoutAttrubuteRight..........如下:


2.Masonry的一些簡單的實(shí)例

2.1居中顯示一個view

demo
demo的運(yùn)行效果


2.2一個對象相對于superView的約束

demo
demo運(yùn)行效果

2.3讓兩個高度為150的view垂直居中且等寬且等間隔排列間隔為10(自動計算其寬度,高度)

demo
demo的運(yùn)行效果

2.4在UIScrollView順序排列一些view并自動計算contentSize

demo
demo的運(yùn)行效果

? ? 從scrollView的scrollIndicator可以看出scrollView的內(nèi)部已如我們所想排列好了,這里的關(guān)鍵就在于container這個view起到了一個中間層的作用能夠自動的計算uiscrollView的contentSize


2.5比例(multipliedBy)

demo
demo的運(yùn)行效果

總結(jié):

通過上面的例子,已經(jīng)把Masonry的功能介紹的差不多了,如果還有興趣的話可以自行研究官方的demo。Masonry是一個非常優(yōu)秀的autolayout庫 能夠節(jié)省大量的開發(fā)和學(xué)習(xí)時間 尤其適合純代碼的iOSer 在iPhone6發(fā)布后引發(fā)的適配潮中 Masonry一定可以助你一臂之力 。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容