`

如何去旧工程适配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

分享到:
评论

相关推荐

    ios6ShareDemo

    【标题】"ios6ShareDemo" 是一个针对iOS 4.5和iOS 6.0平台的分享功能演示项目,它展示了如何在这些版本的iOS系统中实现社交分享功能。这个项目对于开发者来说是一个很好的学习资源,特别是对于那些希望了解早期iOS...

    OSChina iOS客户端工程

    【标题】"OSChina iOS客户端工程"所涉及的知识点主要集中在iOS应用开发上,特别是针对OSChina这个知名的开源中国社区的移动应用。OSChina致力于提供中文领域的开源软件资源、技术资讯以及开发者交流平台,它的iOS...

    IOS5源代码

    6. **通知中心**:iOS 5引入了统一的通知中心,源代码将揭示通知是如何生成、分发和显示的。 7. **Game Center**:苹果的游戏社交平台,源代码可以展示游戏成就、排行榜、多人游戏等功能的实现。 8. **Siri**:iOS...

    IPHONE开源计算器程序(IOS开发入门级)

    通过研究这个开源项目,初学者不仅可以掌握Objective-C和iOS开发的基本技能,还能深入了解软件工程实践,包括代码组织、测试和调试。对于那些对金融计算感兴趣的人来说,这是一个将技术与实际应用相结合的好机会。

    【一步一步学IOS5 】 在iOS App 中添加启动画面

    - 如果你在iOS 5和iOS 6之间做兼容,可能需要在Info.plist中手动添加更多键值对来指定各个尺寸的启动图片。 四、自定义启动动画 如果你希望有更复杂的启动效果,可以考虑自定义启动视图控制器。这需要编写代码来...

    iOS MVVM设计模式

    iPhoneX引入了新的屏幕尺寸和安全区域,开发者需要对应用进行适配,以确保内容在不遮挡“刘海”和底部触控条的情况下正确显示。这通常涉及到调整约束,或者使用AutoLayout的safeAreaLayoutGuide属性。 5. **...

    IOS应用源码Demo-多人游戏_Pong_源码_for_iPhone_iPad-毕设学习.zip

    本资源“多人游戏_Pong_源码_for_iPhone_iPad”是一个适用于iPhone和iPad的iOS应用源码示例,特别适合于毕业设计和论文研究。Pong是一款经典的电子游戏,它以其简单的操作和激烈的竞技性深受玩家喜爱。通过学习这款...

    IOS源码之【类库】Using OpenCV on iPhone(适用OpenCV 2.1.0_iOS SDK 3.x_4.x)

    本项目“Using OpenCV on iPhone”是为iOS应用开发者设计的,它详细介绍了如何在iPhone应用中集成和使用OpenCV 2.1.0版本,兼容iOS SDK 3.x到4.x。以下是对这一主题的深入探讨: 1. **OpenCV简介**:OpenCV是一个跨...

    IOS应用源码之【应用】wikiHow-iPhone.rar

    总的来说,通过对"wikiHow-iPhone"的源码分析,我们可以学习到iOS应用的各个方面,包括但不限于编程语言的使用、UI设计、数据管理、网络通信、测试策略以及项目工程管理。这对于提升iOS开发者的技能和理解移动应用的...

    libevent-2.0.22-stable for iOS 包含静态库

    - **兼容性**:此版本的libevent已经预编译为适用于iOS的静态库,包含的架构有i386(模拟器)、armv7(iPhone 3GS至4S)、x86_64(64位模拟器)、arm64(iPhone 5s及以后的设备),几乎涵盖了所有可能的iOS设备。...

    ios-项目框架搭建.zip

    了解并熟练配置这些选项对于优化项目性能和适配不同环境至关重要。 9. **单元测试与集成测试**: - 为确保代码质量,项目框架中通常会包含测试部分。Xcode支持JUnit和OCUnit进行单元测试,以及Cucumber进行集成...

    ios-自定制安全键盘.zip

    自定义键盘应考虑不同设备(如iPhone和iPad)以及横竖屏的适配,以保证良好的用户体验。 8. **键盘扩展**: 自定义键盘作为iOS的一个扩展,需要在Info.plist中配置相应的键盘类型和隐私权限,同时在主应用中添加...

    Airplay投屏Android接收端项目,兼容最新iOS系统

    Android设备有许多不同的硬件和操作系统版本,需要适配各种屏幕尺寸、硬件性能和API级别。 4. **WiFi连接管理**:AirPlay依赖稳定的WiFi连接,因此在Android端需要处理网络连接和状态监控,确保数据流的连续性和...

    iOS进度悬浮窗.zip

    6. **兼容性**:作为一款成熟的开源项目,`WXProgressWindow`应该支持iOS的不同版本,并且能够良好地适配各种屏幕尺寸,包括iPhone和iPad。 7. **示例代码**:项目通常会包含示例工程,演示如何在实际项目中集成和...

    IOS天气预报

    6. **User Interface**:iOS的AutoLayout和Size Classes用于适配不同屏幕尺寸,保证界面在各种设备上看起来美观。 7. **Core Location**:集成Core Location框架,获取用户的位置信息,以便自动显示当地天气。 8. ...

    iOS端UI设计文档

    - **推荐尺寸**:建议使用iPhone 7的尺寸进行设计,因为这个尺寸可以很好地适配较小的设备(如iPhone 4、5系列)以及较大的设备(如iPhone 7 Plus)。 - **留白建议**:左右留白建议为24px,这是一个普遍接受的标准...

    iOS T9键盘搜索拨号,支持arm64,已经调试通过。SearchCore

    这个项目标题提到的“iOS T9键盘搜索拨号,支持arm64,已经调试通过”,意味着开发者已经对T9键盘的功能进行了扩展,使其不仅限于拨号,还包含了搜索功能,并且适配了最新的iOS设备架构——arm64。 arm64是Apple在...

    iOS关灯小游戏

    Xcode 4.6虽然较旧,但依然包含了开发iOS应用所需的基本工具,如Interface Builder、Source Code Editor和LLDB调试器等。开发者可以使用它来设计用户界面,编写代码,并进行测试和调试。 游戏的逻辑部分通常由...

    IOS应用源码——WindowTitleMenu.rar

    4. **Auto Layout**:"WindowTitleMenu"的布局可能使用Auto Layout来确保在不同尺寸的设备上都能正确显示,包括适配iPhone和iPad。 5. **手势识别**:为了实现交互性,代码可能会包含手势识别代码,如TapGesture、...

    iOS Filter Control.zip

    8. **适配性**: 作为一个通用的过滤器控制组件,它应该考虑了不同屏幕尺寸和设备的适配,确保在iPhone和iPad上都能良好运行。 9. **测试与调试**: 开发者应确保在不同模拟器和真机上对组件进行充分的测试,以确保其...

Global site tag (gtag.js) - Google Analytics