ios 螢幕適配 心得
阿新 • • 發佈:2018-11-21
重點內容
首先 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))];