美文网首页
iOS屏幕适配-frame布局

iOS屏幕适配-frame布局

作者: 4c8ba49dc980 | 来源:发表于2017-03-12 15:08 被阅读1203次

如何用frame适配4.0寸,4.7寸,5.5寸的屏幕.

4.0寸 320/568=0.563

4.7寸  375/667=0.562

5.5寸 414/736=0.5625

很明显能看出这三种屏幕的尺寸宽高比是差不多的,因此可以在4.0寸的基础上,按比例放大来适配4.7寸和5.5寸的屏幕.

// 在AppDelegate.h中

@property float autoSizeScaleX;

@property float autoSizeScaleY;

// 在AppDelegate.m中

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

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];

if(ScreenHeight > 480){ // 这里以(iPhone4S)为准

myDelegate.autoSizeScaleX = ScreenWidth/320;

myDelegate.autoSizeScaleY = ScreenHeight/568;

}else{

myDelegate.autoSizeScaleX = 1.0;

myDelegate.autoSizeScaleY = 1.0;

}

}

因为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;        

现在我们获取了比例关系后,先来看一下如何解决代码设置界面时的适配。CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)这个方法使我们常用的设置尺寸的方法,现在我设置了一个类似于这样的方法。

CG_INLINE CGRect

TS_CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)

{

AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];

CGRect rect;

rect.origin.x = x * myDelegate.autoSizeScaleX;

rect.origin.y = y * myDelegate.autoSizeScaleY;

rect.size.width = width * myDelegate.autoSizeScaleX;

rect.size.height = height * myDelegate.autoSizeScaleY;

return rect;

}

UIImageView *imageview = [[UIImageView alloc] initWithFrame:TS_CGRectMake(100, 100, 50, 50)];

这样我们得出的就是转换后的坐标了.这个imageview在4.0,4.7和5.5的位置和尺寸比例都是一样的.

相关文章

  • 无标题文章

    IOS 11 Iphone x 适配 1 首先分为自动布局适配以及Frame适配 我们先说说frame适配 a 如...

  • iOS屏幕适配-frame布局

    如何用frame适配4.0寸,4.7寸,5.5寸的屏幕. 4.0寸320/568=0.563 4.7寸 375/6...

  • iOS 屏幕适配发展简史

    iPhone 3GS、iPhone 4 没有屏幕适配可言 全部用frame、bounds、center进行布局 很...

  • 屏幕适配(控件相对位置不变)

    1.屏幕适配---主要是一个屏幕横竖屏。 1.1 3gs与4主要用frame。bounds。center进行布局。...

  • IOS适配的总结

    屏幕适配的发展 iPhone3GS\iPhone4 全部用frame、bounds、center进行布局,坐标值、...

  • iOS页面布局

    iOS页面布局及适配 一、固定布局frame(x, y, w, h) 局限性:位置固定,不能随父view大小的改变...

  • iOS 常用布局方式之Frame

    级别: ★★☆☆☆标签:「iOS布局」「iOS frame」「iOS frame bounds」作者: Xs·H...

  • iPhone屏幕适配

    屏幕适配 屏幕适配发展历史 iPhone3GS/iPhone4没有屏幕适配可言全部用frame,bounds,ce...

  • 关于iOS屏幕适配小结

    屏幕适配 屏幕适配的四种方式 frame和bounds Autoresizing AutoLayout 和 mas...

  • ios字体适配的三种实现方法

    大家先看下IOS字体规范与多屏幕适配的规律和在不同尺寸屏幕适配的UI布局: 在项目中肯定会遇到字体适配的问题,从上...

网友评论

      本文标题:iOS屏幕适配-frame布局

      本文链接:https://www.haomeiwen.com/subject/dtntnttx.html