苹果每发布一个系统,都够开发者忙活一阵的,更新xcode适配新系统:像iOS4支持Retina须要@2x的图;像iOS5不支持udid;像如今的iOS6和iPhone5要面对的下面的一堆问题。 api
这时候直接点Add就行了。会默认添加一张Default-568h@2x.png的黑图:
不添加的话,程序运行起来会上下有黑边儿。
添加完之后的效果
这个地方再啰嗦两句:当透明第一次在群里说要添加这么一张图的时候,个人第一反应是:那不是程序启动的时候会有一张黑图么?而个人程序是不须要启动图的。而当自已添加这张图的时候才发现,这个担忧是多余的。估计苹果自已作了什么优化,判断出来是黑图的时候就直接给跳过了。 xcode
在使用背景色的时候,我最喜欢用的一个系统自带的颜色就是:”Group Table View Background Color”。如今既然这个颜色消失了,换个别的颜色就好喽。 app
咱们知道添加图片的时候,会直接添加到工具里,这时候若是有多个Target的时候,直接将Default-568h@2x.png文件,拖拽到相应的”Copy Bundle Resources”里就行了。
再有要注意的就是多个Target在模拟器运行的时候,如今不像原来那么方便,直接切换配置文件就能够运行了。须要在测试不一样Target表示的时候,除了切换配置文件还须要清空模拟器,否则很差使哟~ 工具
不被支持的硬件设备包括:iPod 2nd gen, iPhone 3G 或更老的iPhone
例如我打包时的错误提示就是: 测试
1 2 |
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,看来是苹果逼着开发者和用户升级啊。 优化
1 |
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
|
用时候直接 动画
1 |
if (iPhone5) ooxx
|
就能够了。
另外,若是代码写界面的话,在iPhone5下View的高是568哟~ ui
默认的话,若是你的界面上包含scrollview/TableView的话,这个界面基本上是不用改的,由于中间部分会自动拉伸。若是不包含这两个全屏的控件的话,怕是要自已再添加一个专门针对iPhone5的xib了。办法很简单,新建一个xib文件,将里面view的size设置成Retina 4 Full Screen就能够了。上面已经提到怎么判断iPhone5了,怎样读取不一样的xib文件不用上代码了吧? spa
(iOS5的时候就出过一次情况,此次又来)
要深刻理解这个问题,还须要您自已亲自作一些实验,iOS6取消了一个api,增长了两个api,可是这一去一加知足不了个人状况:应用在全部的界面都是竖屏,只在一个屏幕是横屏。就这一个状况要实现费了我半天的功夫。只说一下我最后怎么实现的。
首先:这横屏的xib里面的view就是横的
其次:屏幕适应只支持横屏 code
1 2 3 |
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return UIInterfaceOrientationIsLandscape(interfaceOrientation); } |
第三:在这个view是present出来的
第四:viewDidLoad里隐藏状态栏
1 2 3 4 5 6 |
- (void)viewDidLoad{
if (IOSSystemVersion >= 5.0) { //5.0及之后,不整这个,界面错位 整这个带动画的话,容易看到一个白头 [[UIApplication sharedApplication] setStatusBarHidden:YES]; } } |
第五:viewWillAppear自已将view旋转90度
1 2 3 4 5 6 7 8 9 10 11 12 13 |
- (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); } }]; }
|