iOS不用任何适配框架做屏幕适配
2016-11-20 本文已影响2077人
coderYJ
相信大家对于屏幕适配都知道可以用自动布局,如果是纯代码的话可以用第三方框架Masonry但是有的朋友不喜欢用第三方框架那怎么办呢?
军哥今天给大家推荐一种方式,不用第三方框架就可以适配各种屏幕
但是这种方式的前提是必须用纯代码,所有界面全部用纯代码
这种方式的中心思想就是根据不同屏幕的宽高比,算出其中的比例,然后根据不同屏幕的宽度和高度,自动✖️比例,达到适配的效果
废话不多说,直接上代码
- 1.定义PCH
// 屏幕高度
#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]
- 2.然后在其他的类里面就可以用了
例如创建一个button:
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为例,当然你也可以修改
持续更新实用的干货
关注我请看简书首页