zoukankan      html  css  js  c++  java
  • iOS--利用比例纯代码适配屏幕大小

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述;第二种方法是和之前iPhone5的类似,比较简单,为iPhone6和6+添加两张特殊的png

    iPhone6:命名:Default-375w-667h@2x.png 分辨率:750*1334

    6+ 命名:Default-414w-736h@3x.png 分辨率:1242*2208

    注意:

    如果要在app的介绍页面里有“为iPhone6,6 plus优化”的字样就必须使用第一种方法,使用第二种方法的话还是会显示“为iPhone5优化”

    下面说一下纯代码适配

    #define ScreenHeight [[UIScreen mainScreen] bounds].size.height
    
    #define ScreenWidth [[UIScreen mainScreen] bounds].size.width
    
    #pragma mark -------屏幕适配-------
    CG_INLINE CGRect
    CGRectMake1(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
    {
        //屏幕适配比例
        float autoSizeScaleX;
        float autoSizeScaleY;
        if (ScreenHeight >480) {
            autoSizeScaleX = ScreenWidth/320;
            autoSizeScaleY = ScreenHeight/568;
            
        } else {
            autoSizeScaleX = 1.0;
            autoSizeScaleY = 1.0;
        }
        
        
        CGRect rect;
        rect.origin.x = x * autoSizeScaleX;
        rect.origin.y = y * autoSizeScaleY;
        rect.size.width = width * autoSizeScaleX;
        rect.size.height = height * autoSizeScaleY;
        
        return rect;
    }

    因为iPhone4s屏幕的高度是480,因此当屏幕尺寸大于iPhone4时,autoSizeScaleX和autoSizeScaleY即为当前屏幕和iPhone5尺寸的宽高比。比如,

    如果是5,autoSizeScaleX=1,autoSizeScaleY=1;
    如果是6,autoSizeScaleX=1.171875,autoSizeScaleY=1.17429577;
    如果是6Plus,autoSizeScaleX=1.29375,autoSizeScaleY=1.2957;
    现在我们获取了比例关系后,先来看一下如何解决代码设置界面时的适配。
    这样,在5,6和6Plus的位置和尺寸比例都是一样的。

  • 相关阅读:
    Linux 管道 管线
    中国网络拓扑图(主干网、地区网、主节点一览表)
    C++中的STL中map用法详解
    Git 丢弃本地修改
    Linux下指定so动态库的加载路径的5种方法!!!
    C++中string append函数的使用与字符串拼接
    C++执行shell命令linux
    Linux动态库.so文件加载搜索路径详解
    FFmpeg打印日志函数分析
    linux C/C++中调用shell命令和运行shell脚本
  • 原文地址:https://www.cnblogs.com/zhangshan/p/5157644.html
Copyright © 2011-2022 走看看