美文网首页Ios开发iOS tipsSwift Tips
iOS不用任何适配框架做屏幕适配

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

作者: coderYJ | 来源:发表于2016-11-20 15:06 被阅读2077次

    相信大家对于屏幕适配都知道可以用自动布局,如果是纯代码的话可以用第三方框架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为例,当然你也可以修改
    持续更新实用的干货
    关注我请看简书首页

    相关文章

      网友评论

      • survivorsfyh:能同时即适配 iPhone 也适配 iPad 吗
        coderYJ:@survivorsf iPad的话需要你做一下调整,就是判断一下,屏幕的宽度,是可以达到适配的
      • wg689:无法适配 iPhone 吧,此宏
        coderYJ:@wg689 可以的,就是专门适配iPhone的如果要适配iPad调整一下尺寸就好了
      • 951bb715bff7:1倍图,2倍图,3倍图怎么用?也是按照这个比例计算吗?
      • 大生活家:这个要求设计图是基于iphone5的,但是出的图标等等是要最大的尺寸的?
        coderYJ:@大生活家 可以改
        大生活家:@coderYJ
        #define XMGiPhone5W 320.0
        #define XMGiPhone5H 568.0
        这两个改成iphone6的也是可以的吧?因为计算的原理不变,我现在用的适配方案和你这个类似。
        coderYJ:@大生活家 对,不贵你也可以调

      本文标题:iOS不用任何适配框架做屏幕适配

      本文链接:https://www.haomeiwen.com/subject/uihmuttx.html