1. 程式人生 > >ios 螢幕適配 心得

ios 螢幕適配 心得

重點內容
首先 UI設計一般是按照4.7的螢幕設計。
由於 iphone 5 以上 螢幕的比例 相似。只有 4s 螢幕比例比較特殊。
要適配全部機型。我一般都是 在4s上 寫一個scrollview,將螢幕 變成與5的大小相同。接下來就簡單了

這是一個UIView的類別

這是.h裡的內容

+ (CGFloat)Fyh:(CGFloat)yh;
+ (CGFloat)Fxw:(CGFloat)xw;

這是.m裡的內容

+ (CGFloat)factorForiPhone5OriPhone4Width
{
    return (CGFloat)320 / 375
; } + (CGFloat)factorForiPhone6PWidth { return (CGFloat)414 / 375; } + (CGFloat)factorForiPhone6Width { return 1; } + (CGFloat)Fxw:(CGFloat)xw { switch ((NSInteger)[UIScreen mainScreen].bounds.size.width) { case 320: return [self factorForiPhone5OriPhone4Width] * xw; case
375: return [self factorForiPhone6Width]* xw; case 414: return [self factorForiPhone6PWidth]* xw; default: return [self factorForiPhone6Width]* xw; } } + (CGFloat)factorForiPhone5OriPhone4Height { return (CGFloat)568 / 667; } + (CGFloat)factorForiPhone6PHeight { return
(CGFloat)736 / 667; } + (CGFloat)factorForiPhone6Height { return 1; } + (CGFloat)Fyh:(CGFloat)yh { switch ((NSInteger)[UIScreen mainScreen].bounds.size.height) { case 480: return [self factorForiPhone5OriPhone4Height]*yh; break; case 568: return [self factorForiPhone5OriPhone4Height]*yh; break; case 667: return [self factorForiPhone6Height]*yh; case 736: return [self factorForiPhone6PHeight]*yh; default: return [self factorForiPhone6Height]*yh; } }

通常我會寫成 巨集
這裡的 傳入的引數 直接就是 iPhone6 下的 座標 和 寬高

//螢幕適配
#define SFWX(width)             [UIView Fxw:width]
#define SFHY(height)           [UIView Fyh:height]

呼叫:
在需要 適配的地方 直接 呼叫巨集定義即可。

  UIView * backView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, SFWX(320), SFHY(350))];