iphone4 与iphone5适配
转: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适配的更多相关文章
- 从iPhone4、iPhone5、iPhone6看手机外壳加工工艺进化史
从iPhone4.iPhone5到iPhone6,苹果为我们推出了一代又一代新产品,让我们享受到最新的科技产品.每次不只是配置上的改变,苹果在工艺上也不断改变.下面就阐述一下我对这几款手机在设计和制造 ...
- web app iphone4 iphone5 iphone6 响应式布局 适配代码
在网页中,pixel与point比值称为device-pixel-ratio,普通设备都是1,iPhone 4是2,有些Android机型是1.5.] 那么-webkit-min-device-pix ...
- web app iphone4 iphone5 iphone6 iphone6 Plus响应式布局 适配代码
来源:http://www.phptext.net/article_view.php?id=387 -------------------------------------------------- ...
- cocos2d-x jsb + cocosbuider 适配iphone5 尺寸
最简单的适配iphone5的方案,应该算是直接用一块图片补上多出来的区域了: 1:Iphone5分辨率为 1136* 640 , 需要在cocosbuilder中将ccb修改为对应的尺寸: Docum ...
- 大屏iPhone的适配 +iOS 图片尺寸要求
摘自:http://blog.ibireme.com/2014/09/16/adapted_to_iphone6/ 苹果公司官网设计介绍到:Retina显示屏的超高像素密度已超过人眼能分辨的范围.Re ...
- (淘宝无限适配)手机端rem布局详解(转载非原创)
从网易与淘宝的font-size思考前端设计稿与工作流 本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问 ...
- ios8/sdk8/xcode6/iphone6(+)适配
AppIcon https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/Ic ...
- 移动端适配:font-size设置的思考
1. 问题的引出 如果html5要适应各种分辨率的移动设备,可以使用rem这样的尺寸单位,针对各个分辨率范围在html上设置font-size的代码: html{font-size:10px} @me ...
- (淘宝无限适配)手机端rem布局详解
从网易与淘宝的font-size思考前端设计稿与工作流 本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问 ...
随机推荐
- Mastering-VSCode
中英文等宽 14寸1920x1080, Win10, 设置如下(前两个字体就够了), 字号14,16都可以. 需要下载UbuntuMono字体. 如果分表率低如14寸1366x768,可尝试 Inco ...
- 【Java面试】-- 杂题
杂题 2019-11-03 21:09:37 by冲冲 1.类加载器的双亲委派机制 类加载器:把类通过类加载器加载到JVM中,然后转换成class对象(通过类的全路径来找到这个类). 双亲委派机制 ...
- gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
前言 Excel功能强大,应用广泛.随着web应用的兴起和完善,用户的要求也越来越高.很多Excel的功能都搬到了sass里面.恨不得给他们做个Excel出来...程序员太难了... 去年我遇到了 ...
- 21天从Java转向Go之第三天——初出茅庐
名称 Go中25个关键字 只能在语法允许的地方使用,不能做为名称 break default func interface select case defer go map struct chan e ...
- 【Lua】实现代码执行覆盖率统计工具
一.如何评估测试过程的测试情况? 很多时候完成功能测试后就会发布上线,甚至交叉和回归都没有足够的时间去执行,然后通过线上的补丁对遗漏的问题进行修复.如果可以在发布前了解本次测试过程所覆盖代码执行的比例 ...
- c# System.Text.Json 精讲
本文内容来自我写的开源电子书<WoW C#>,现在正在编写中,可以去WOW-Csharp/学习路径总结.md at master · sogeisetsu/WOW-Csharp (gith ...
- 洛谷 P5469 - [NOI2019] 机器人(区间 dp+拉格朗日插值)
洛谷题面传送门 神仙题,放在 D1T2 可能略难了一点( 首先显然对于 P 型机器人而言,将它放在 \(i\) 之后它会走到左边第一个严格 \(>a_i\) 的位置,对于 Q 型机器人而言,将它 ...
- jQuery ajax常用示例
总结一下jQuery ajax常用示例 $.ajax({ type: "post", //类型get,post url: urls, //链接地址 data:{"id&q ...
- 前端4 — jQuery — 更新完毕
1.下载jQuery 网址:Download jQuery | jQuery 最好下载最新版的,因为有什么bug问题,最新版的都会有,所以学技术就用最新版的,实际开发用的时候就要讲究了 2.开始用j ...
- Spark Stage 的划分
Spark作业调度 对RDD的操作分为transformation和action两类,真正的作业提交运行发生在action之后,调用action之后会将对原始输入数据的所有transformation ...