转:http://www.cnblogs.com/ygm900/archive/2013/05/24/3098015.html

iphone4/4s 应用程序升级适配 iphone5 的方法有很多,而且其中原理在网上也找的到。本次废话不多说,单简要叙述我的过程:

综合权衡,我选择用 增加xib文件的方法。

第一步:

为需要适配找到工程中需要适配iphone5的xib文件,加入是AViewController。

首先,到工程文件目录下,找到AViewController.xib文件,然后在同一文件夹下拷贝一份,重命名为AViewController_ip5.xib  文件。

第二步:

将AViewController_ip5.xib 添加到工程中;

因为AViewController_ip5.xib文件是AViewController.xib的拷贝,我们甚至连它与 AViewController.h/.m文件之间的关联都不需要做。(如果你是自己手动创建了一个xib文件,那么你需要为其关联一个类,方法参加:手动关联xib文件

第三步:

选中AViewController_ip5.xib中的view,在右侧的attributes inspector -> simulated metrics ->size 下将view的size 设置为retina 4 full screen,此时,view就变成iphone5的4英寸了。

根据你的需要对xib文件中的元素进行位置调整。

第四步:

在需要用到AViewController.xib和AViewController_ip5.xib的controller的.m文件中,增加以下宏,判断设备是否是iphone5

#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)

然后,在用到AViewController.xib和AViewController_ip5.xib文件的代码中做个判断即可,如下所示例:

    if (iPhone5) {
IndexViewController *myIndexViewController = [[IndexViewController alloc]initWithNibName:@"IndexViewController_ip5" bundle:nil];
[self.view addSubview:myIndexViewController.view];
}else{
IndexViewController *myIndexViewController = [[IndexViewController alloc]initWithNibName:@"IndexViewController" bundle:nil];
[self.view addSubview:myIndexViewController.view];
}

ok,大功告成!

DeBug:

写代码,要是没几个错误,那还有什么乐趣呢?

使用上述方法过程中你可能会遇到的几个问题:

1、系统抛出:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/38AF505B-F07C-4CD5-8752-E0E8783330CB/hall.app> (loaded)' with name 'UserinfoOnNavibar'

原因:英语直译   因为“内部的不协调、不一致导致的异常”,所以无法加载NIB  文件;

实际的原因是,我直接拷贝了一个在xcode4.3下创建的xib文件改名后,在xcode4.5中用以上方法适配iphone5 时结果系统抛出如上错误。

解决方案:不要再用拷贝的方法了,自己手工在xcode4.5下建一个你要的xib文件吧。

2、遇到一个scrollview 不能滚动的现象;

解决方案: 将在xcode 4.3下拖动到xib文件上的scrollview 删除,然后重新在xcode4.5下重新拖动一个scollview到xib文件上。然后关联一下即可。不需要修改任何代码。

iphone4 与iphone5适配的更多相关文章

  1. 从iPhone4、iPhone5、iPhone6看手机外壳加工工艺进化史

    从iPhone4.iPhone5到iPhone6,苹果为我们推出了一代又一代新产品,让我们享受到最新的科技产品.每次不只是配置上的改变,苹果在工艺上也不断改变.下面就阐述一下我对这几款手机在设计和制造 ...

  2. web app iphone4 iphone5 iphone6 响应式布局 适配代码

    在网页中,pixel与point比值称为device-pixel-ratio,普通设备都是1,iPhone 4是2,有些Android机型是1.5.] 那么-webkit-min-device-pix ...

  3. web app iphone4 iphone5 iphone6 iphone6 Plus响应式布局 适配代码

    来源:http://www.phptext.net/article_view.php?id=387 -------------------------------------------------- ...

  4. cocos2d-x jsb + cocosbuider 适配iphone5 尺寸

    最简单的适配iphone5的方案,应该算是直接用一块图片补上多出来的区域了: 1:Iphone5分辨率为 1136* 640 , 需要在cocosbuilder中将ccb修改为对应的尺寸: Docum ...

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

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

  6. (淘宝无限适配)手机端rem布局详解(转载非原创)

    从网易与淘宝的font-size思考前端设计稿与工作流 本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问 ...

  7. ios8/sdk8/xcode6/iphone6(+)适配

    AppIcon https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/Ic ...

  8. 移动端适配:font-size设置的思考

    1. 问题的引出 如果html5要适应各种分辨率的移动设备,可以使用rem这样的尺寸单位,针对各个分辨率范围在html上设置font-size的代码: html{font-size:10px} @me ...

  9. (淘宝无限适配)手机端rem布局详解

    从网易与淘宝的font-size思考前端设计稿与工作流 本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问 ...

随机推荐

  1. 基于Guava API实现异步通知和事件回调

    本文节选自<设计模式就该这样学> 1 基于Java API实现通知机制 当小伙伴们在社区提问时,如果有设置指定用户回答,则对应的用户就会收到邮件通知,这就是观察者模式的一种应用场景.有些小 ...

  2. CTF入门学习2->Web基础了解

    Web安全基础 00 Web介绍 00-00 Web本意是网,这里多指万维网(World Wide Web),是由许多互相连接的超文本系统组成的,通过互联网访问. Web是非常广泛的互联网应用,每天都 ...

  3. Salesforce Consumer Goods Cloud 浅谈篇四之店内拜访的创建和执行

    本篇参考: https://v.qq.com/x/page/f0772toebhd.html https://v.qq.com/x/page/e0772tsmtek.html https://v.qq ...

  4. [uoj76]懒癌

    为了方便,称患有懒癌的狗为"坏狗" 记$Q_{i}$为第$i$个人能观察的狗集合,$S$为坏狗集合,那么第$k$天第$i$个人能得到的信息有且仅有$S\ne \empty$.$S\ ...

  5. [atARC116F]Deque Game

    假设两个操作者分别为$A$和$B$,其中$A$希望最大.$B$希望最小 (并不默认$A$为整局游戏的先手,仅是最终的结果考虑$A$为先手时) 记第$i$个队列第$j$个元素为$a_{i,j}$(其中$ ...

  6. [hdu5629]Clarke and tree

    首先由一个神奇的序列叫做Purfer序列,他可以表示一棵树,且每个节点出现此时为度数-1(因此总长为n-2). 然后dp,用f[i][j][k]表示用前i个点中的j个点构成了一个长度为k的Purfer ...

  7. [bzoj1115]石子游戏

    考虑令$bi=ai-a_{i-1}$,那么每一次操作相当于让$bi-=x$且$b_{i+1}+=x$,相当于从i向i+1移动x个石子,那么容易发现偶数堆没有用处,因为另一方可以用同样的操作,因此问题相 ...

  8. 洛谷 P6772 - [NOI2020]美食家(广义矩阵快速幂)

    题面传送门 题意: 有一张 \(n\) 个点 \(m\) 条边的有向图,第 \(0\) 天的时候你在 \(1\) 号城市,第 \(T\) 天的时候你要回到 \(1\) 号城市. 每条边上的边权表示从城 ...

  9. CF605E Intergalaxy Trips

    CF605E Intergalaxy Trips 考虑你是不知道后来的边的出现情况的,所以可以这样做:每天你都选择一些点进行观察,知道某天往这些点里面的某条边可用了,你就往这条边走.这样贪心总是对的. ...

  10. [Ocean Modelling for Begineers] Ch4. Long Waves in a Channel

    Ch4. Long Waves in a Channel 简介 本章主要介绍明渠中分层流体模拟.练习包括浅水表面波,风暴潮.内波和分层流体模拟. 4.1 有限差分法详细介绍 4.1.1 泰勒公式 4. ...