新入職的公司用的布局框架是PureLayout,之前沒(méi)接觸過(guò)埠对。用了幾天就基本熟練掌握了络断,項(xiàng)目做得差不多了,現(xiàn)在才有空寫(xiě)這篇文章项玛,希望能對(duì)你快速學(xué)習(xí)PureLayout有幫助貌笨。
PureLayout簡(jiǎn)介
PureLayout是一個(gè)簡(jiǎn)單但強(qiáng)大的Objective-C庫(kù),使用橋接頭文件也能很好地適用于Swift語(yǔ)言襟沮。PureLayout為Auto Layout提供了對(duì)開(kāi)發(fā)者更加友好的界面锥惋,簡(jiǎn)單清晰。想了解更具體的可以百度开伏,這里就不做過(guò)多介紹了膀跌。
PureLayout下載地址內(nèi)含寫(xiě)好的例子,也是很不錯(cuò)的固灵。
使用方法
使用的時(shí)候引入頭文件:#import "PureLayout.h”捅伤,盡量放pch文件里,不然每個(gè)界面都要引入巫玻,很麻煩丛忆。
如果你喜歡用懶加載,那步驟就是仍秤,先把控件貼在父控件上熄诡,然后再設(shè)置約束。
如果你喜歡直接初始化诗力,那么就把所有控件初始化之后凰浮,再統(tǒng)一設(shè)置約束。
比較推薦懶加載姜骡,代碼看著清晰导坟。可以自行選擇圈澈。
例子1
//紅色view距離父控件左邊20,距離父控件上邊100
[self.redView autoPinEdgeToSuperviewEdge:ALEdgeLeft withInset:20.f];
[self.redView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:100.f];
//紅色view的寬和高為100
[self.redView autoSetDimensionsToSize:CGSizeMake(100, 100)];
//藍(lán)色view的左邊,距離紅色view的右邊為30
[self.blueView autoPinEdge:ALEdgeLeft toEdge:ALEdgeRight ofView:self.redView withOffset:30];
//藍(lán)色view,紅色view等寬等高
[@[self.blueView,self.redView] autoMatchViewsDimension:ALDimensionWidth];
[@[self.blueView,self.redView] autoMatchViewsDimension:ALDimensionHeight];
//藍(lán)色view,紅色view水平對(duì)齊
[self.blueView autoAlignAxis:ALAxisHorizontal toSameAxisOfView:self.redView];
[self.purpleView autoPinEdgeToSuperviewEdge:ALEdgeLeft withInset:20.f];
[self.purpleView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:250];
[self.purpleView autoSetDimension:ALDimensionWidth toSize:150];
[self.purpleView autoSetDimension:ALDimensionHeight toSize:150];
//綠色View貼在紫色View上,距離父控件的上,左,下,右為15
[self.greenView autoPinEdgesToSuperviewEdgesWithInsets:UIEdgeInsetsMake(15, 15, 15, 15)];
效果見(jiàn)下圖:
例子2
//紅色view在父view的中心點(diǎn)
[self.redView autoCenterInSuperview];
//紅色view的寬高為100
[self.redView autoSetDimensionsToSize:CGSizeMake(100, 100)];
//紅色view,藍(lán)色view左對(duì)齊
[self.blueView autoPinEdge:ALEdgeLeft toEdge:ALEdgeLeft ofView:self.redView];
//藍(lán)色View的上邊距離紅色view的下邊是10
[self.blueView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:self.redView withOffset:10];
//藍(lán)色View距離父view的右邊為20
[self.blueView autoPinEdgeToSuperviewEdge:ALEdgeRight withInset:20.f];
//藍(lán)色View的高度是紅色View高度的一半
[self.blueView autoMatchDimension:ALDimensionHeight toDimension:ALDimensionHeight ofView:self.redView withMultiplier:0.5];
效果見(jiàn)下圖:
例子3
NSArray *colorViews = @[self.redView, self.blueView, self.purpleView, self.greenView];
[colorViews autoSetViewsDimension:ALDimensionHeight toSize:40.f];
//間距為10,水平對(duì)齊,依次排列
[colorViews autoDistributeViewsAlongAxis:ALAxisHorizontal alignedTo:ALAttributeHorizontal withFixedSpacing:10.0 insetSpacing:YES matchedSizes:YES];
//紅色view相對(duì)于其父view水平對(duì)齊
[self.redView autoAlignAxisToSuperviewAxis:ALAxisHorizontal];
效果見(jiàn)下圖:
這四句代碼實(shí)現(xiàn)的功能是不是感覺(jué)很強(qiáng)大惫周。
結(jié)尾
第一次寫(xiě)博客,介紹的可能少了點(diǎn)康栈,感覺(jué)總是不能把心里想的描述出來(lái)递递,只能多貼點(diǎn)代碼體會(huì),不過(guò)注釋還是很詳細(xì)的啥么。相信同行們只要認(rèn)真看下登舞,都能很快熟練掌握的。
寫(xiě)了一個(gè)Purelayout的demo悬荣,已經(jīng)上傳github菠秒。有興趣的可以下載看下,內(nèi)含PureLayout基本用法,還有項(xiàng)目中具體的實(shí)例氯迂。感覺(jué)對(duì)你有幫助的給個(gè)star吧践叠。