WJFrameLayout 0.4.1

WJFrameLayout 0.4.1

VanJay 维护。



  • 王万杰

WJFrameLayout

同时支持 UIView 和 CALayer 快速 frame 布局,支持设置 size、center、origin、right、top 等属性,借鉴 Masonry,传值可以不用包装成 NSValue 就让一个方法通用,

一个基于 Frame 布局的 iOS 布局框架。使用方式类似于 Masonry。支持 CALayer 和 UIView。

CI Status Version License Platform

示例

要运行示例项目,请首先克隆仓库,然后在示例目录中运行 pod install

要求

ARC,iOS 6 或更高版本,XCode 5 或更高版本

安装

WJFrameLayout 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod 'WJFrameLayout'

使用

[self.redView wj_makeFrameLayout:^(WJFrameLayoutMaker *_Nonnull make) {
    // 使用这种方式参数可以不用包装成 NSValue
    make.left.equalToValue(self.view.left).offset(20.f);
    // 使用下面这两种需要将参数包装成 NSValue 或者传 id 类型
    make.right.equalTo(@(self.view.right)).offset(-20.f);
    make.height.wj_equalTo(@(40.f));
    make.top.equalToValue(self.view.top).offset(40.f);
}];

[self.greenLayer wj_makeFrameLayout:^(WJFrameLayoutMaker * _Nonnull make) {
    make.centerX.wj_equalTo(self.view.centerX);
    make.top.equalToValue(self.redView.bottom).offset(20.f);
    make.size.wj_equalTo(CGSizeMake(200, 50));
}];

[self.blueView wj_makeFrameLayout:^(WJFrameLayoutMaker *_Nonnull make) {
    make.centerX.equalToValue(self.view.centerX);
    make.bottom.equalToValue(self.view.bottom).offset(-50.f);
    // 支持设置 size
    make.size.wj_equalTo(WJBox(CGSizeMake(120.f, 88)));
    // 设置 size 也提供了下面的方法
    // make.size.sizeEqualTo(CGSizeMake(120.f, 88));
}];

[self.blackView wj_makeFrameLayout:^(WJFrameLayoutMaker *_Nonnull make) {
    make.height.equalToValue(100.f);
    // 支持设置 center
    make.center.equalToValue(CGPointMake(self.view.centerX, self.view.centerY));
    // 设置 center 也提供了下面的方法
    // make.center.centerEqualTo(CGPointMake(self.view.centerX, self.view.centerY));
    make.left.equalToValue(self.view.left).offset(20.f);
    make.right.equalToValue(self.blueView.left);
}];

/**
    equalTo
    wj_equalTo
    equalToValue
    这三种是等价的,只是 equalToValue 可以传值不用包装成 NSValue,像平时直接设置 frame 一样即可
    */

作者

王万杰, [email protected]

许可

WJFrameLayout 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。