iOS 第三方框架

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吧。

上一篇下一篇

猜你喜欢

热点阅读