今天介昭一个在工作中自己封装的分类能实现以下功能:
**自动根据机型尺寸 适配 约束的 top left right bottom width height的数值
应用场景:
当我们使用Masonry 进行布局时 一般UI效果图都是 按iphone6 来标注的.但我们根据一个控件标注来写约束时.会有一个适配性的问题.比如 iphone SE 的 width 是320 pt 而标注是按iphone 6的width 375 pt 来计算的. 那么我们在写 left right width 等约束时就得考虑其它机型适配问题了.不然就会如下图所示:
如以上效果图
从左到右 分别是 iphoneX 6P 6 SE 可以看到 未添加使用分类前只有iphone 6 和 iphoneX width 布局约束正常.因为iphoneX 的width与iphone6一样.
当添加分类使用后 所有机型的width. height 字体大小 等都进行了 等比例 适配
实现和使用非常 非常地简单
把分类拖入项目中然后 #import "NSNumber+GC.h"
默认是以iphone6 为参照 也可根据实际情况修改
static CGFloat const referenceW = iPhone6W;
static CGFloat const referenceH = iPhone6H;
使用
分类中有两个宏 GCW(Num) GCH(Num)
布局 height top bottom 时用 GCH(Num) 如GCH(100)
布局 width left right leading trailing时用 GCW(Num) 如GCW(100)
如果是字体大小 适配 建议使用 GCW(Num) 这个宏
[redView1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view).offset(GCH(300));
make.left.equalTo(self.view).offset(GCW(5));
make.width.equalTo(@(GCW(180)));
make.height.equalTo(@(GCH(90)));
}];
代码示例AutoAdapter
也可以新浪微博私信@火柴大男人