如何去旧工程适配iOS6和iPhone5

苹果每发布一个系统,都够开发者忙活一阵的,更新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

时间: 2024-09-08 16:03:34

如何去旧工程适配iOS6和iPhone5的相关文章

适配iOS6与iOS7

适配屏幕其实很简单,但为了保持兼容性以及写的代码的通用性,以及最小的改动代码,本人按照如下的一种方式来适配,可以一劳永逸. 1. 先定义几个宏,分辨表示应用可以使用区域的高度,屏幕可用区域的高度,屏幕的宽度 2. 再看看如下图的一些描述 3. 接下来看看适配的代码如何写 #import "RootViewController.h" #define iOS7 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7 ?

Eclipse出问题了,无法创建新的工程,而且旧工程的清单文件也找不到了,急求啊

问题描述 Eclipse出问题了,无法创建新的工程,而且旧工程的清单文件也找不到了,急求啊 [2014-04-04 21:29:22 - db] W/ResourceType( 4812): ResXMLTree_node header size 0 is too small. [2014-04-04 21:29:22 - db] E:androiddbreslayoutactivity_main.xml:11: error: Error: No resource found that matc

【COCOS2D-X(1.X 2.X) 】IOS6与IPHONE5适相关设置随笔(解决第三方类库无法通过ARMV7S编译的方法、添加DEFAULT-568H@2X.PNG)

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/1020.html 一. 很多项目使用>=4.5 version 的Xcode无法,发现很多第三方库,比如SWaves SDK.Admob SDK.91 SDK Mobage SDk等等. 1. 最简单的解决方案肯定是等这些第三方库尽快更新支持ios6 armv7s 的新版SDK. 2.另外等不及的童鞋可以尝试

【COCOS2D-X(1.X 2.X) 修复篇】IOS6 中LIBCURL.A 无法通过ARMV7S编译以及IOS6中无法正常游戏横屏的解决方法

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/1000.html iOS6 与 iphone5 已经发布一段时间了,那么对于cocos2dx在昨天发布的最新支持的Cocos2d-2.0-x-2.0.3 released版本之前的版本跑在iOS6中会出现两个问题(Himi 都已iphone5 真机调试验证并解决) 首先对于 libcurl.a 无法通过arm

广州一女子一次购5部iphone5:称等这一天太久

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   "我等这一天太久了."12月14日凌晨,广东电信石牌营业厅内,一名忠实的"果粉"女白领激动地手捧5部iphone,称"终于如愿给家人及朋友买到了iphone5".而这一细节还一度引发了广东电信iphone5首发日的抢购潮. 据悉,这位自称李姓的女白领,早在12月即收到内部消息称中国电信将在本月预售iph

工具-工程移植项目多出了依赖包

问题描述 工程移植项目多出了依赖包 换了台电脑,直接把原电脑上的工程和eclipse等所有工具都传到新电脑上,但是新电脑导入工程更新了一下工程,工程图标上出了个红色!号,就去看工程的Libraries,发现maven有一个包MISS了,但是看了下原电脑上的工程没有这个包,这是什么情况? 原电脑工程maven依赖包 新电脑工程maven依赖包 解决方案 把它干掉(移除). 这应该是tools.jar的1.5.0版本,是不是一个同一个库的不同版本的包? tools.jar和tools-1.5.0.j

Android Studio导入github下载的工程

        现在从github上面现在的项目大部分都是Android Studio工程,那么问题来了,从github上面down一个工程下来,怎么导入android studio呢? 对刚从eclipse转Android Studio的童鞋来说,可能会遇到各种问题.下面方法可以简单快速的将github上的项目导入android studio并运行.         首先提一下,Android Studio是基于Gradle来构建项目的,这个与eclipse不同,所以想要熟练掌握Android

阿里和12306合作,政府去IOE已成趋势

导读:如果单纯将阿里云与12306的合作视为业务层面的互补,那就肤浅多了.政府去IOE已成趋势,高效政府云服务采购已成必然,这次两者的合作这或许仅仅是云服务进军政府的开始.但愿未来在云服务器帮助之下,12306可以轻松顺畅,政府官网可以减少加载时间,政府数据库不必一直在等待查询.当然,也希望棱镜门事件不在我们国家发生. 上周业内传出阿里云与12306开始合作,称接手75%也是宕机最大隐患的查票业务,随即阿里方面确认了该传言.回想刚刚过去的春运抢票高峰期,对于服务器宕机的吐槽似乎明显少了很多.但我

iphone5闹钟在哪里?苹果iphone5关机闹钟设置

    如何给ios7系统下的iphone5设置闹钟时间           一个闹钟对于上班族来说是必不可少的,然而传统的闹钟无法设置铃声,总是听着一种声音起床,时间久了会让人厌烦.使用iphone5的内置铃声功能,可以将早操音乐设置为闹钟铃声,也可以制作一段钢琴曲来作为闹铃,这样每天伴随着美妙的音乐起床,不会影响到自己的好心情.          大家可能对ios6版的闹钟设置已经非常的熟悉了,在升级过ios7后,闹钟的设置发生了一点变化,这里对新版ios7系统的iphone5闹钟设置做一下