WJFrameLayout
同时支持 UIView 和 CALayer 快速 frame 布局,支持设置 size、center、origin、right、top 等属性,借鉴 Masonry,传值可以不用包装成 NSValue 就让一个方法通用,
一个基于 Frame 布局的 iOS 布局框架。使用方式类似于 Masonry。支持 CALayer 和 UIView。
示例
要运行示例项目,请首先克隆仓库,然后在示例目录中运行 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 文件。