iOS 纯代码适配iPhone6,6p

news/2024/9/23 9:27:55/

首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述;第二种方法是和之前iPhone5的类似,比较简单,为iPhone6和6+添加两张特殊的png
iPhone6:命名:Default-375w-667h@2x.png 分辨率:750*1334
6+ 命名:Default-414w-736h@3x.png 分辨率:1242*2208
注意:
如果要在app的介绍页面里有“为iPhone6,6 plus优化”的字样就必须使用第一种方法,使用第二种方法的话还是会显示“为iPhone5优化”

下面说一下纯代码适配
首先iPhone5的界面一定要完全适配,这样才能完美适配6和6Plus。
首先,我么我们要观察一下5,6和6Plus的尺寸比例关系

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

在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){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)这个方法使我们常用的设置尺寸的方法,现在我设置了一个类似于这样的方法。
在.m文件中

UIImageView *imageview = [[UIImageView alloc] initWithFrame:CGRectMake1(100, 100, 50, 50)];CG_INLINE CGRect
CGRectMake1(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;
}

这样,这个btn按钮在5,6和6Plus的位置和尺寸比例都是一样的。

如果整个项目做完后才开始做适配的话这个方法的优势就体现出来了,面对几十个工程文件,只需自定义并且替换你的CGRectMake方法,再加上storyBoradAutoLay这个方法就瞬间完成大部分甚至全部的适配,如果遇到tableView的或者其他的手动调整一下即可。


http://www.ppmy.cn/news/711664.html

相关文章

关于iPhone屏幕尺寸、分辨率及适配

1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS 2.4 inches (62.1 mm) 4.5 inches (115.5 mm) 3.5-inch 320x480 1x 320x480 163 4(s) 2.31 inches (58.6 mm) 4.5 inches (1…

iPhoneX设计尺寸和适配

被iPhone X刷了一天屏,到下午实在受不了各种假帖。标题写着“iPhone X 适配、指南、设计稿” 内容却是发布会回顾和手机介绍。索性自己去官网找素材写一篇只针对iPhone X适配的贴子,与设计图无关的内容通通不提 昨夜发布的iPhone 8属于常规升级&#xff…

Iphone 66p,IOS8适配工作总结(2015-2-7更新)

一、IOS8适配遇到的问题 1、不能定位 打勾 设置- 隐私-定位服务-你的app-使用应用程序期间(始终) 打开app再进设置后会发现,你打勾的使用程序期间(始终)又给取消了 原来iOS8需要一些方法。 如果需要仅在前台定位,你在调用startUpdatingLocation 前需要调用request…

iphone6、6p设计适配

从知乎转来的,应该是淘宝iOS App适配方案,非常具有参考价值。 移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出一套iOS平台设计稿。随着苹果发布…

iphone屏幕尺寸总结

http://blog.csdn.net/phunxm/article/details/42174937#t24 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS 2.4 inches (62.1 mm) 4.5 inches (115.5 mm) 3.5-inch 320x480 1x …

C学习笔记5

1、8\main.c|6|warning: variable C set but not used [-Wunused-but-set-variable]| 这个错误提示的是变量定义和赋值后并没有进行输出操作 2、main()函数可以出现在任意位置,但是必须有且只能有1个 3、其值不能改变的量称为常量 4、常量有整形常量&#xff0c…

iphone 6plus 输出的屏幕尺寸 375 ,667的原因 - 简书

转自:http://blog.csdn.net/freshlover/article/details/44454991 看到这个题目你可能不信,引出这个问题的缘由是几次项目中Chrome模拟器和iPhone6真机预览效果不一致。 为什么在Chrome Emulation模拟手机页面和真机预览效果不一致? 以前觉得不外乎两个原…

iPhone6的界面尺寸及原型规范

iPhone6的原型规范如下: 1、界面尺寸布局:满屏尺寸750x1334px 2、高度电量条高度40px,导航栏高度88px,标签栏高度98px; 3、各区域图标大小导航栏图标44px,标签栏图标50px; 4、各区域文字大小电量…