iOS--利用比例纯代码适配屏幕大小

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

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

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

注意:code

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

 

下面说一下纯代码适配文档

#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尺寸的宽高比。好比,class

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

相关文章
相关标签/搜索