转载请注明出处:

http://www.cnblogs.com/dokaygang128/p/4049461.html

Apple 今年发布了两款新的iPhone机器,iPhone 6 和iPhone 6 plus :

其中第二幅图是当前主要设备的分辨率情况。这里简单介绍一下这张图。

首先,第一行Point是我们在工程中Controller的ViewWillAppear方法中打印Controller的View时得到frame的Size;

第二行是实际系统生成的显示APP位图时的分辨率;

第三行主要是Plus由于实际的物理分辨率并没有生成的APP位图的分辨率这么大,只有1920*1080,所以显示时有个图片的缩小;

第四行是没英寸像素点个数,代表屏的清晰度;

看到这么多的分辨率,大致也知道我们developer 需要做些适配工作。

适配的方式:

适配的话主要分为两种方式:自动适配和手工适配(完美适配)

我们的旧工程用Xcode 6 打开时默认即是自动适配。在真机上运行APP后会发现显示有些糊,并且和系统的某些APP对比发现navigationbar是变高的。这个主要是因为自动适配系统是将旧Frame大小的位图直接放大进行显示的,不信你打印一下frame看看,宽度还是万年不变的320.

想要打开手动适配模式,有两种方式可供选择:

1.使用大的LaunchImage,原来@2x的1.5倍图像。貌似Xcode6强制使用Asset Catalog。

2.使用一个Launch Xib作为启动画面。

经典适配步骤:

1.有Nib文件的,首先检查Xib文件中各个View的Autoresizing是否正确,主要是宽度进行自适应与右边距。优先设置Controller的

2.检查.m文件中是否有不合理的硬编码320(或者基于320进行计算的)宽度;有的话用View.Width进行替换;

3.检查.m中初始化的View,其Autoresizing是否正确。

杂项:

1.有些高度的计算是硬编码的,只考虑了480和568.

2.有些时候Autoresizing计算宽度实在是不好用了,可以在layoutSubviews或ViewWillAppear中修改;

3.必要时手动调整frame;

4.注意时序问题;

iPhone 6 & iPhone 6 Plus适配的更多相关文章

  1. [转]在cocos2d-x中让一个项目适配iphone、iphone retina、ipad、ipad retina四种分辨率

    http://cankeyyin.blog.163.com/blog/static/12336178320124149391202/ 原理:将iphone的hd图片给ipad用,即: 使用原iphon ...

  2. iPhone 6/iPhone 6 Plus硬件性能

    iPhone 6/iPhone 6 Plus硬件性能 评分 4 分 正 如之前传闻的,这次同时发布了两款iPhone产品,分别是4.7英寸的iPhone 6和5.5英寸的iPhone 6 Plus.苹 ...

  3. iOS屏幕适配 支持新手机 iPhone XR iPhone XS 超简单

    随着苹果爸爸发布了 超牛叉的iPhone iPhone X .iPhone XR.iPhone XS .iPhone XS Max.开发者的适配工作要开始了. 停,

  4. 小程序 iphone X 吸底按钮适配

    问题图: 解决方法: // app.js App({   isIphoneX() {     let isIphoneX = false     wx.getSystemInfo({       su ...

  5. 48 (OC)* 适配iPad和iPhone、以及横竖屏适配。

    一:核心方法 1.三个方法 1.1:开始就会触发 - (void)viewWillLayoutSubviews; 1.2:开始就会触发 - (void)viewDidLayoutSubviews; 1 ...

  6. Making the iPhone vibrate (iPhone 振动)

    from: http://stackoverflow.com/a/4725039 There are two seemingly similar functions that take a param ...

  7. iPhone: 在 iPhone app 里使用 UIPopoverController

    更新:iOS8 版本已经不可用 为 UIPopoverController 增加类别,如下: //NSObject+UIPopover_Iphone.h #import <Foundation/ ...

  8. ipad和iphone的适配

    关于xib或者storybord下iphone的横竖屏的适配以及ipad的适配 ios8出现了Size Classes,解决了各种屏幕适配的问题,他把屏幕的宽和高分别分成了三种,把屏幕总共分成了九种情 ...

  9. 大屏iPhone的适配 +iOS 图片尺寸要求

    摘自:http://blog.ibireme.com/2014/09/16/adapted_to_iphone6/ 苹果公司官网设计介绍到:Retina显示屏的超高像素密度已超过人眼能分辨的范围.Re ...

随机推荐

  1. POJ1064

    #include <iostream> #include <iomanip> #include <cmath> using namespace std; int N ...

  2. linux 在xenserver上安装如何显示图形界面

    centos5.8 64-bit和 centos 6.5 64-bit xenserver安装linux的时候默认使用的VHM,选择对应的虚拟机模板安装linux是Linux Text界面. VHM ...

  3. ASP.NET缓存 Cache之数据缓存

    添加 Cache[Key]=object  or Cache.Insert 移除 Cache.Remove(key) 1.将值直接写入Cache 代码如下 复制代码 HttpContext.Curre ...

  4. eBay 开发流程

    1[记录]注册成为eBay开发者(eBay Developers Program)+创建Sanbox Key和Production Key http://www.crifan.com/register ...

  5. C语言知识总结(5)

    预处理指令 C语言提供的预处理指令主要有:宏定义.文件包含.条件编译 宏定义 不带参数的宏定义 1>一般形式 #define 宏名 字符串 比如#define A 10 2>作用 它的作用 ...

  6. 【Unity3D实战】方块跑酷初级开发实战(一)

    [Unity3D实战]方块跑酷初级开发实战(一) 欢迎大家来到LDS的博客,今天开始我们讲解一下跑酷类游戏的基本操作,本文为原创,视频请观看[ http://www.mkcode.net/html/u ...

  7. POJ 3624

    背包问题,在定容量的背包中放入物体求装满价值最大.因为每种物体数量只有1,故只有放与不放. #include<iostream> #include<cstring> #incl ...

  8. 《Usermod:user lee is currently logged in 家目录不能改变解决方法》

    前面短时间自己玩samba服务时,上面的所有服务都做好了,家目录死活就是不能访问,删掉自己的smb.conf文件,自己到别的服务上用rsync同步过来的文件,启动服务家目录还是不能访问,排了一下午,终 ...

  9. linux下dup/dup2函数的用法

    系统调用dup和dup2能够复制文件描述符.dup返回新的文件文件描述符(没有用的文件描述符最小的编号).dup2可以让用户指定返回的文件描述符的值,如果需要,则首先接近newfd的值,他通常用来重新 ...

  10. win8系统下保存出现闪退的解决方案

    不知道有没有人和我一样用的是win8系统,同时还遇到保存QQ截图保存闪退.保存sublime文件闪推.系统自带截图保存闪退.....更可恶的是我用chrome中百度搜索“win8保存东西闪退”结果浏览 ...