首页 > 其他 > 详细

iphone4 与iphone5适配

时间:2015-03-22 20:42:10      阅读:219      评论:0      收藏:0      [点我收藏+]

转: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适配

原文:http://www.cnblogs.com/stephen-init/p/4357853.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!