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

元气小坏坏 提交于 2020-02-28 20:46:21

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

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

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

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

  • 1.定义PCH
     
    1. // 屏幕高度
    2. #define XMGHeight [UIScreen mainScreen].bounds.size.height
    3. // 屏幕宽度
    4. #define XMGWidth [UIScreen mainScreen].bounds.size.width
    5. // 以iPhone5为基准(UI妹纸给你的设计图是iPhone5的),当然你也可以改,但是出图是按照7P(6P)的图片出的,因为大图压缩还是清晰的,小图拉伸就不清晰了,所以只出一套最大的图片即可
    6. #define XMGiPhone5W 320.0
    7. #define XMGiPhone5H 568.0
    8. // 计算比例
    9. // x比例 1.293750 在iPhone7的屏幕上
    10. #define XMGScaleX XMGWidth / XMGiPhone5W
    11. // y比例 1.295775
    12. #define XMGScaleY XMGHeight / XMGiPhone5H
    13. // X坐标
    14. #define LineX(l) l*XMGScaleX
    15. // Y坐标
    16. #define LineY(l) l*XMGScaleY
    17. // 字体
    18. #define Font(x) [UIFont systemFontOfSize:x*XMGScaleX]
  • 2.然后在其他的类里面就可以用了
    例如创建一个button:
     
    1. UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(LineX(20), LineY(20), LineX(100), LineY(30))];
    2. [self.view addSubview:btn];
    3. btn.backgroundColor = [UIColor redColor];
    4. [btn setTitle:@"点我啊" forState:UIControlStateNormal];
    5. btn.titleLabel.font = Font(14);
    代码示例

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

    原文:http://bbs.520it.com/forum.php?mod=viewthread&tid=2839

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!