PureLayout使用方法
2016-06-27 本文已影响1513人
有本事放学别跑
新入职的公司用的布局框架是PureLayout,之前没接触过。用了几天就基本熟练掌握了,项目做得差不多了,现在才有空写这篇文章,希望能对你快速学习PureLayout有帮助。
PureLayout简介
PureLayout是一个简单但强大的Objective-C库,使用桥接头文件也能很好地适用于Swift语言。PureLayout为Auto Layout提供了对开发者更加友好的界面,简单清晰。想了解更具体的可以百度,这里就不做过多介绍了。
PureLayout下载地址内含写好的例子,也是很不错的。
使用方法
使用的时候引入头文件:#import "PureLayout.h”,尽量放pch文件里,不然每个界面都要引入,很麻烦。
如果你喜欢用懒加载,那步骤就是,先把控件贴在父控件上,然后再设置约束。
如果你喜欢直接初始化,那么就把所有控件初始化之后,再统一设置约束。
比较推荐懒加载,代码看着清晰。可以自行选择。
例子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)];
//蓝色view的左边,距离红色view的右边为30
[self.blueView autoPinEdge:ALEdgeLeft toEdge:ALEdgeRight ofView:self.redView withOffset:30];
//蓝色view,红色view等宽等高
[@[self.blueView,self.redView] autoMatchViewsDimension:ALDimensionWidth];
[@[self.blueView,self.redView] autoMatchViewsDimension:ALDimensionHeight];
//蓝色view,红色view水平对齐
[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)];
效果见下图:
例子2
//红色view在父view的中心点
[self.redView autoCenterInSuperview];
//红色view的宽高为100
[self.redView autoSetDimensionsToSize:CGSizeMake(100, 100)];
//红色view,蓝色view左对齐
[self.blueView autoPinEdge:ALEdgeLeft toEdge:ALEdgeLeft ofView:self.redView];
//蓝色View的上边距离红色view的下边是10
[self.blueView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:self.redView withOffset:10];
//蓝色View距离父view的右边为20
[self.blueView autoPinEdgeToSuperviewEdge:ALEdgeRight withInset:20.f];
//蓝色View的高度是红色View高度的一半
[self.blueView autoMatchDimension:ALDimensionHeight toDimension:ALDimensionHeight ofView:self.redView withMultiplier:0.5];
效果见下图:
例子3
NSArray *colorViews = @[self.redView, self.blueView, self.purpleView, self.greenView];
[colorViews autoSetViewsDimension:ALDimensionHeight toSize:40.f];
//间距为10,水平对齐,依次排列
[colorViews autoDistributeViewsAlongAxis:ALAxisHorizontal alignedTo:ALAttributeHorizontal withFixedSpacing:10.0 insetSpacing:YES matchedSizes:YES];
//红色view相对于其父view水平对齐
[self.redView autoAlignAxisToSuperviewAxis:ALAxisHorizontal];
效果见下图:
这四句代码实现的功能是不是感觉很强大。
结尾
第一次写博客,介绍的可能少了点,感觉总是不能把心里想的描述出来,只能多贴点代码体会,不过注释还是很详细的。相信同行们只要认真看下,都能很快熟练掌握的。
写了一个Purelayout的demo,已经上传github。有兴趣的可以下载看下,内含PureLayout基本用法,还有项目中具体的实例。感觉对你有帮助的给个star吧。