纯代码适配

来源:互联网 发布:mac终端切换管理员用户 编辑:程序博客网 时间:2024/04/30 00:01

纯代码适配


先看苹果各机型屏幕宽高比

4.0寸(iPhone 5,iPhone 5S)宽高比为 320 / 568 = 0.563

4.7寸(iPhone 6,iPhone 6S,iPhone 7,iPhone 7S)宽高比为 375 / 668 = 0.562

5.5寸 (iPhone 6 Plus,iPhone 6S Plus,iPhone 7 Plus,iPhone 7S Plus宽高比为 414 / 736 = 0.5625

可以看出宽高比基本相等,因此可以根据一个一个屏幕分辨率算出其在另外屏幕上的frame,代码如下:


// 获取屏幕宽高

#define ScreenWidth [UIScreen mainScreen].bounds.size.width;

#define ScreenHeight [UIScreen mainScreen].bounds.size.height;

// 4.0寸屏幕(iPhone5s)为基准,也可以4.7寸或5.5寸屏幕为基准

#define AutoSizeScaleX  [UIScreen mainScreen].bounds.size.width / 320.0;

#define AutoSizeScaleY  [UIScreen mainScreen].bounds.size.height /568.0;


// 内联定义尺寸方法宏

CG_INLINE CGRect MSRectMake(CGFloat x,CGFloat y, CGFloat width,CGFloat height)

{

    CGRect rect;

    

    rect.origin.x = x *AutoSizeScaleX;

    rect.origin.y = y *AutoSizeScaleY;

    rect.size.width = width *AutoSizeScaleX;

    rect.size.height = height *AutoSizeScaleY;

    

    return rect;

}


用法:用MSRectMake替换换系统的RectMake即可

UIView *myView = [[UIViewalloc] initWithFrame:MSRectMake(15,64 + 15, 290,50)];

myView.backgroundColor = [UIColorblackColor];

[self.viewaddSubview:myView];



1 0