如何去旧工程适配iOS6和iPhone5

简介: <p>苹果每发布一个系统,都够开发者忙活一阵的,更新xcode适配新系统:像iOS4支持Retain需要@2x的图;像iOS5不支持udid;像现在的iOS6和iPhone5要面对的下面的一堆问题。</p> <p>1.添加Retina 4 launch image,运行工程的时候会主动提示你。</p> <p>这时候直接点Add就好了。会默认添加一张Default-568h@2x.png

苹果每发布一个系统,都够开发者忙活一阵的,更新xcode适配新系统:像iOS4支持Retain需要@2x的图;像iOS5不支持udid;像现在的iOS6和iPhone5要面对的下面的一堆问题。

1.添加Retina 4 launch image,运行工程的时候会主动提示你。

这时候直接点Add就好了。会默认添加一张Default-568h@2x.png的黑图:

不添加的话,程序运行起来会上下有黑边儿的哟

添加完以后的效果

这个地方再啰嗦两句:当透明第一次在群里说要添加这么一张图的时候,我的第一反应是:那不是程序启动的时候会有一张黑图么?而我的程序是不需要启动图的。而当自已添加这张图的时候才发现,这个担心是多余的。估计苹果自已做了什么优化,判断出来是黑图的时候就直接给跳过了。

2.Group Table View Background Color is Deprecated in iOS 6.0

在使用背景色的时候,我最喜欢用的一个系统自带的颜色就是:”Group Table View Background Color”。现在既然这个颜色消失了,换个别的颜色就好喽。

3.关于多个Target

我们知道添加图片的时候,会直接添加到工具里,这时候如果有多个Target的时候,直接将Default-568h@2x.png文件,拖拽到相应的”Copy Bundle Resources”里就好了。

再有要注意的就是多个Target在模拟器运行的时候,现在不像原来那么方便,直接切换配置文件就可以运行了。需要在测试不同Target表示的时候,除了切换配置文件还需要清空模拟器,不然不好使哟~

4.xcode4.5不再支持armv6即:iOS4.3.3以下的系统.

不被支持的硬件设备包括:iPod 2nd gen, iPhone 3G 或更老的iPhone

例如我打包时的错误提示就是:

warning: iOS deployment targets lower than 4.3 are not supported (current IPHONEOS_DEPLOYMENT_TARGET = “4.0″, ARCHS = “armv7″).

(null):  iPhone/iPod Touch: application executable is missing a required architecture.  At least one of the following architecture(s) must be present: armv6 (-19033)

因为喜欢用Block,所以我开发的东东,一般最低都支持iOS4.0,看来是苹果逼着开发者和用户升级啊。
5.奉上一段判断iPhone的代码
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
用时候直接
if (iPhone5) ooxx
就可以了。
另外,如果代码写界面的话,在iPhone5下View的高是568哟~
6.关于xib自适应的问题
默认的话,如果你的界面上包含scrollview/TableView的话,这个界面基本上是不用改的,因为中间部分会自动拉伸。如果不包含 这两个全屏的控件的话,怕是要自已再添加一个专门针对iPhone5的xib了。办法很简单,新建一个xib文件,将里面view的size设置成 Retina 4 Full Screen就可以了。上面已经提到怎么判断iPhone5了,怎样读取不同的xib文件不用上代码了吧?
7.关于屏幕旋转(iOS5的时候就出过一次状况,这次又来)
要深入理解这个问题,还需要您自已亲自做一些实验,iOS6取消了一个api,增加了两个api,但是这一去一加满足不了我的情况:应用在所有的界面都是竖屏,只在一个屏幕是横屏。就这一个情况要实现费了我半天的功夫。只说一下我最后怎么实现的。
首先:这横屏的xib里面的view就是横的
其次:屏幕适应只支持横屏
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
  return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
第三:在这个view是present出来的
第四:viewDidLoad里隐藏状态栏
- (void)viewDidLoad{
  if (IOSSystemVersion >= 5.0) {
    //5.0及以后,不整这个,界面错位 整这个带动画的话,容易看到一个白头
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
  }
}
第五:viewWillAppear自已将view旋转90度
- (void)viewWillAppear:(BOOL)animated{
  [super viewWillAppear:animated];
  [UIView animateWithDuration:0.0f
                   animations:^{
                     [self.view setTransform: CGAffineTransformMakeRotation(M_PI / 2)];
                     if (iPhone5) {
                       self.view.frame = CGRectMake(0, 0, 568, 320);
                     }
                     else{
                       self.view.frame = CGRectMake(0, 0, 480, 320);
                     }
                   }];
}
专自 iOS分享网 http://iosshare.cn/?p=723
目录
相关文章
|
6月前
|
网络安全 开发工具 数据安全/隐私保护
如何把ipa文件(iOS安装包)安装到iPhone手机上? 附方法汇总
如何把ipa文件(iOS安装包)安装到iPhone手机上? 附方法汇总
|
2月前
|
网络安全 开发工具 数据安全/隐私保护
如何把 ipa 文件 (iOS 安装包) 安装到 iPhone 手机上? 附方法汇总
如何把 ipa 文件 (iOS 安装包) 安装到 iPhone 手机上? 附方法汇总
|
8月前
|
iOS开发
iOS Xcode 意外退出 打不开工程
iOS Xcode 意外退出 打不开工程
106 0
|
5月前
|
小程序 开发工具 Android开发
Donut多端框架小程序打包适配ios和安卓app
腾讯新出了一个 Donut 多端框架,可以直接将微信小程序转成 ios 和 安卓 app,小程序开发者工具里也集成了 app 相关升级、调试和打包的功能,终于可以一套代码开发出3个客户端了!
122 0
Donut多端框架小程序打包适配ios和安卓app
|
7月前
|
小程序 iOS开发
uniapp中IOS端小程序底部黑线适配的方法(整理)
uniapp中IOS端小程序底部黑线适配的方法(整理)
|
8月前
|
开发工具 iOS开发
iOS 逆向编程(十一)iPhone 终端支持中文输入与vim命令(编辑文件)
iOS 逆向编程(十一)iPhone 终端支持中文输入与vim命令(编辑文件)
63 0
|
8月前
|
网络协议 Shell 网络安全
iOS 逆向编程(九 - 1)通过 USB 连接登录 iPhone 以及端口映射
iOS 逆向编程(九 - 1)通过 USB 连接登录 iPhone 以及端口映射
171 0
|
8月前
|
存储 安全 网络协议
iOS 逆向编程(五)通过 (OpenSSH) Wifi 远程连接登录 iPhone
iOS 逆向编程(五)通过 (OpenSSH) Wifi 远程连接登录 iPhone
261 0
|
9月前
|
开发工具 iOS开发 开发者
iOS 暗黑模式的适配总结
iOS 暗黑模式的适配总结
|
10月前
|
iOS开发 开发者
代码显示苹果 iOS 16.2 将允许 iPhone 更频繁刷新“实时活动”,但也更加耗电
代码显示苹果 iOS 16.2 将允许 iPhone 更频繁刷新“实时活动”,但也更加耗电