苹果的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]来获得。

iOS6和iOS7代码的适配(1)的更多相关文章

  1. iOS6和iOS7代码的适配(3)——坐标适配

    由于iOS7里面status bar和视图是重叠在一起了,所以应用的y坐标就没法和以前一致了,需要重新计算设定.基本上,你的应用用Xcode5运行一下就能看见这个问题,这里写了一个最简单的例子,一个V ...

  2. iOS6和iOS7代码的适配(5)——popOver

    popOver这个空间本身是iPad only的,所以iPhone上见不到,我记得微信上有个这样的弹出框,有扫一扫等几个菜单项,估计这是腾讯自己实现的,用于菜单的扩展. popOver从iOS6到iO ...

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

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

  4. iOS6和iOS7代码的适配(6) —— NSLocalizedString

    我们的应用都是需要国际化的,字符串也是重要的一环.一般来说,我们是通过一个string资源文件来实现这个目的的,我们需要支持几种语言,就把这个文件本地化多少次.代码中需要用NSLocalizedStr ...

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

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

  6. IOS6和IOS7的屏幕适配问题

    自从IOS7出来以后,以前写在IOS6上或者更低版本的程序,跑在IOS7的模拟器上就会出现一些问题.最大的问题就是,所有的UI空间都会统一向上移动20个点(如果空间的y值为0,就会被StatusBar ...

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

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

  8. 适配iOS6与iOS7

    适配屏幕其实很简单,但为了保持兼容性以及写的代码的通用性,以及最小的改动代码,本人按照如下的一种方式来适配,可以一劳永逸. 1. 先定义几个宏,分辨表示应用可以使用区域的高度,屏幕可用区域的高度,屏幕 ...

  9. iOS- <项目笔记>iOS6 & iOS7屏幕图片适配

    1.为非视网膜\视网膜屏幕分别准备2份图片,比如: 1> 非视网膜 abc.png 2> 视网膜 abc@2x.png 程序检测视网膜屏到会自动替换@2x 2.程序启动图片 * 程序启动过 ...

随机推荐

  1. 实现JSON数据的存储和读取

    事前准备: //创建一个Crime类 public class Crime { private String mTitle; private UUID mUUID; private Date mDat ...

  2. 无良教程-破解SublimeText3

    这教程实际上并不是倡导大伙儿去破解软件然后传播出去以侵犯作者的权益,纯粹是技术分享,如果大伙儿觉得Low了,可立马删除. sublime text是我非常喜欢的一款编辑器,在ubuntu上,之前用的一 ...

  3. 【转】基于RSA算法实现软件注册码原理初讨

    1 前言 目前,商用软件和共享软件绝大部份都是采用注册码授权的方式来保证软件本身不被盗用,以保证自身的利益.尽管很多常用的许多软件系统的某些版本已经被别人破解,但对于软件特殊行业而言,注册码授权的方式 ...

  4. VS2010 CLR20r3 devenv.exe 错误的解决--vs重启解决方案

    VS2010 CLR20r3 devenv.exe 错误的解决   最近我的vs2010经常过段时间就报CLR20r3错误的解决,出现这个异常我的vs2010就要重启,很是烦人,这么搞没法干活也. 搜 ...

  5. Spring中常用的hql查询方法(getHibernateTemplate())

    一.find(String queryString); 示例:getHibernateTemplate().find("from bean.User"); 返回所有User对象 二 ...

  6. SQL顺序列找出断号

    select id from info id-----------123567810111215 (11 行受影响) 方法一: select (select max(id)+1 from Info w ...

  7. ubuntu连接无线网

    我的ubuntu是因为没有安装无线网卡驱动,首先查看网卡型号 但是我在Broadcom官网上没有找到BCM43142的驱动. 通过谷歌后发现通过安装bcwl-kernel-source来解决这个问题, ...

  8. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

  9. 使用Vitamio打造自己的Android万能播放器(6)——在线播放(播放列表)

    前言 新版本的VPlayer由设计转入开发阶段,预计开发周期为一个月,这也意味着新版本的Vitamio将随之发布,开发者们可以和本系列文章一样,先开发其他功能.本章内容为"在线视频播放列表& ...

  10. 构建一个用于产品介绍的WEB应用

    为了让用户更好地了解您的产品功能,您在发布新产品或者升级产品功能的时候,不妨使用一个产品介绍的向导,引导用户熟悉产品功能和流程.本文将给您介绍一款优秀的用于产品介绍的WEB应用. 就像微博或邮箱这类W ...