PureLayout使用方法

新入职的公司用的布局框架是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吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,807评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,269评论 4 61
  • 慢慢喜欢上跑步,大汗淋漓,拉筋。加油
    撄宁90阅读 1,774评论 0 1
  • 很奇怪,本来可以成为好朋友的两个人,一旦角色定位变成甲方和乙方,两人相处的感觉马上变得拘谨、紧张起来。而本来是甲方...
    小迷阅读 3,520评论 0 1
  • 昨天在群里做了个收集,看到从去年10月份左右开始按照百天计划练习的伙伴 ,有不少人已经成功找到了理想的工作,非常非...
    马力_可能性与大设计阅读 7,259评论 8 74