您的位置:首页 > 移动开发 > IOS开发

ios 屏幕适配 心得

2016-03-11 14:50 309 查看
重点内容

首先 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))];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: