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的位置和尺寸比例都是一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM