iOS界面布局各机型自动适配(结合Masonry)

今天介昭一个在工作中自己封装的分类能实现以下功能:

**自动根据机型尺寸 适配 约束的  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

也可以新浪微博私信@火柴大男人

你可能感兴趣的:(iOS界面布局各机型自动适配(结合Masonry))