Ios开发iOS tipsSwift Tips

iOS不用任何适配框架做屏幕适配

2016-11-20  本文已影响2077人  coderYJ

相信大家对于屏幕适配都知道可以用自动布局,如果是纯代码的话可以用第三方框架Masonry但是有的朋友不喜欢用第三方框架那怎么办呢?

军哥今天给大家推荐一种方式,不用第三方框架就可以适配各种屏幕

但是这种方式的前提是必须用纯代码,所有界面全部用纯代码

这种方式的中心思想就是根据不同屏幕的宽高比,算出其中的比例,然后根据不同屏幕的宽度和高度,自动✖️比例,达到适配的效果
废话不多说,直接上代码

// 屏幕高度
#define XMGHeight [UIScreen mainScreen].bounds.size.height
// 屏幕宽度
#define XMGWidth [UIScreen mainScreen].bounds.size.width
// 以iPhone5为基准(UI妹纸给你的设计图是iPhone5的),当然你也可以改,但是出图是按照7P(6P)的图片出的,因为大图压缩还是清晰的,小图拉伸就不清晰了,所以只出一套最大的图片即可
#define XMGiPhone5W 320.0
#define XMGiPhone5H 568.0
// 计算比例
// x比例 1.293750 在iPhone7的屏幕上
#define XMGScaleX XMGWidth / XMGiPhone5W
// y比例 1.295775
#define XMGScaleY XMGHeight / XMGiPhone5H
// X坐标
#define LineX(l) l*XMGScaleX
// Y坐标
#define LineY(l) l*XMGScaleY
// 字体
#define Font(x) [UIFont systemFontOfSize:x*XMGScaleX]
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(LineX(20), LineY(20), LineX(100), LineY(30))];
    [self.view addSubview:btn];
    btn.backgroundColor = [UIColor redColor];
    [btn setTitle:@"点我啊" forState:UIControlStateNormal];
    btn.titleLabel.font = Font(14);

代码示例

好了大家可以去试试了,当然我现在是以iPhone5为例,具体的可以按照你们公司的情况
前提是美工出图需要出大屏的图片,也就是 7P(6P)的图片
设计图以iPhone5为例,当然你也可以修改
持续更新实用的干货
关注我请看简书首页

上一篇 下一篇

猜你喜欢

热点阅读