苹果的iOS7推出后,对于所有的应用来说都提出了一个天然的需求——适配不同版本的SDK。目前来说,用iOS6的SDK生成的应用,可以在iOS7的系统上跑,UI上也保持了原来的风格样式,这是苹果做的向下兼容,不过不要小看苹果推行iOS7的决心——苹果发布消息,2014年2月1日开始,AppStore上不接受不是Xcode5的提交。

这样,苹果给所有的开发者留下的就是华山一条路了——升级你的系统吧,Mac10.9都免费发布了,你还要闹哪样?!

虽然每版SDK的推出都会有适配的问题,但个人感觉这次iOS7的SDK的变化是最大的。为了适配iOS7,每个应用都需要做一些事情:

1. icon的变化

iOS7的图标和原先也有变化,这点在Xcode5里面体现的很清楚。

iPhone上来说,需要增加120X120的图标;iPad上来说,需要增加76X76和152X152的图标。并且图标风格推荐和iOS7尽量贴近,苹果仍然会帮你做圆角化(圆角的半径不同了),但阴影效果等不会帮做了。(设计表示躺枪啊)

官方有一份文档可以参考:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27

2. 启动界面

启动界面需要增大一些,把原先的status bar的区域加进去。如果原先你的设计就是全屏的,这一步就可以省略了。

3. Retina和4寸屏幕的支持

目前的应用这个应该都有支持了吧,如果你不支持iPhone5的话,AppStore上已经不能提交了。

4.调整layout

由于status bar的原因,坐标计算的原点有变化,很多时候会发现UI上有不少重叠的现象,这个就需要调整了。由于同时要适应iOS6和iOS7,这个调整相应也有一些难度。

苹果官方推荐使用autolayout来帮助做自动的适应(3.5寸和4寸的屏幕)。iOS7里面的autolayout功能说增强了不少,以前我也不愿意使用这个功能,以后的应用中打算试试。

5. Bar Button

Bar Button是指那些系统预设的用在Toolbar或者NavigatorBar上的按钮,UI上有明显改变,大小也有一定的变化,tintColor也变成了barTintColor。

6. 其他UI的细节

UI的变化真的很多,大的框架不会变化,但各处细节改变很多,这个也没法穷举了,打算后面慢慢总结,把自己遇到的分享出来。

iOS6的应用运行在iOS7的系统上时,会模拟出一个iOS6的环境,所以应用仍然会拟物化的显示,UI的控件也都显示iOS6的风格。不过苹果官方说这样效率较低,不建议这么做,目前的情况时过渡,相信会逐渐减少。

不过我iOS6的应用也可以在iOS7系统上运行时也出现过异常。异常是在progressView上出现的,在界面上显示和iOS7一样很细,解决方法是在代码里把frame显式指定了一下。

iOS系统的判定,这个可以通过[[[UIDevice currentDevice] systemVersion] floatValue]来获得。

http://blog.csdn.net/sakulafly/article/details/17795285

转载于:https://www.cnblogs.com/geek6/p/3840605.html

iOS6和iOS7代码的适配(1)相关推荐

  1. iOS6和iOS7代码的适配(4)——tableView

    iOS7上不少控件的样子有了变化(毕竟要扁平化嘛),不过感觉变化最大的肯定非tableView莫属.因为这个控件的高度可定制性,原先是使用及其广泛的,这样的一个改变自然也影响颇大. 1.accesso ...

  2. iOS6和iOS7代码的适配(2)——status bar

    用Xcode5运行一下应用,第一个看到的就是status bar的变化.在iOS6中,status bar是系统在处理,应用中不需要考虑这部分,iOS7之后是应用在处理,每个ViewControlle ...

  3. (ios7) 解决代码布局View, ios7 中 subView 高度增加StatusBar20dp的问题,保证Ios6,ios7代码一致...

    在ios7 布局中,Status Bar 和 ToolBar ,NavigateBar 等都包含在ViewControl的主View中. 这样原来ios6 的View布局 整体向上移动了20dp,下面 ...

  4. iOS6和iOS7环境下微信登录未显示问题微信IOS的SDK:isWXAppInstalled总是返回NO和nil...

    iOS6和iOS7环境下微信登录未显示问题&微信IOS的SDK:isWXAppInstalled总是返回NO和nil 一.问题描述: iOS6和iOS7 环境下未显示微信登录界面,在其他环境下 ...

  5. ios6和ios7区别

    ios6和ios7在界面上有些区别 ios6中 1.statusBar是20,也就是屏幕实际只用到460,但我们加控件或者什么到界面上, 坐标应从 (0,0)开始 2.navigationContro ...

  6. iOS6和iOS7适应代码(6) —— NSLocalizedString

    我们的应用程序都需要国际化,字符串的重要组成部分.一般来说.我们是通过一个string资源文件来达到这个目的,我们需要支持多国语言,有多少次把这个文档本地化.需要使用的代码NSLocalizedStr ...

  7. 自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景

    文章转自:http://blog.csdn.net/zhang_red/article/details/21447535 总结下常用的几点: 1.修改放大镜图标 [self setImage:[UII ...

  8. IOS6.0与IOS7.0屏幕适配

    2019独角兽企业重金招聘Python工程师标准>>> if([self respondsToSelector:@selector(edgesForExtendedLayout)]) ...

  9. ios 纯代码怎么适配ipad_iOS屏幕适配(纯代码)

    在iOS实际项目开发中, 我们经常要适配不同尺寸的屏幕,如iPhone4s,iPhone5/s,iPhone6/s,iPhone6Plus等. 在代码中创建一个控件如: UILabel *label ...

最新文章

  1. Clang:LLVM的C语言家族前端
  2. Xcode7 运行iOS10以上系统(10.1、10.2、10.3)解决Could not find Developer Disk Image
  3. mysql数据库as表恢复_使用flashback database找回被误删除表空间
  4. 如何判断ListView中的CheckItem项是否选中?并将所以选项从ListView控件中删除?
  5. GO语言struct语法
  6. python input输入多个变量_「Python 秘籍」1.2 解压可迭代对象赋值给多个变量
  7. 线性代数---向量问题的求解方法
  8. Pascal's Triangle II
  9. NSA(美国国安局)泄漏Exploit分析
  10. 基于FPGA实现SDI接口
  11. 面试微软等公司必备的书
  12. 共轭函数Fenchel不等式
  13. Nginx_PHP缓存设置的整理对比
  14. 清风老师数学建模课程——第一讲层次分析法
  15. WPF_界面_图片/界面/文字模糊解决之道整理
  16. python怎么算二元一次方程_利用Python求解二元一次方程
  17. 基于QT的网络五子棋游戏程序的设计与实现
  18. Qt 菜鸟的坑 QAbstractSocket::isValid()
  19. QQ连连看外挂--基于LAScript
  20. 一个SparkSQL作业的一生

热门文章

  1. IT项目管理总结:第四章 项目综合管理
  2. 3、Docker容器操作
  3. 神策 FM:每周成长 8%,企业用户增长四步骤——一个成功案例
  4. Java Socket编程如何建立两者关系
  5. MySQL高可用的几种方案
  6. 设计模式学习笔记之-代理模式
  7. css中的一些常用选择器
  8. 诊断案例:从实例挂起到归档失败和内存管理的蝴蝶效应
  9. 有关OVM社区产品经理对OVM的29个问题解答!
  10. 安卓工程不继承ActionBarActivity的设置