iOS7适配之设计篇www.316.net亚洲必赢

适配 Checklists

Should Do

  • 确保程序内容在半晶莹剔透的 UI
    控件下可以很好的来得——如工具条和键盘或半透明的场地条。

  • 双重设计工具条上按钮的图标。

  • 始于应用没有边框和圆角的按钮,移除在此以前安装的按钮背景图片。

  • 检查程序内硬编码设置的 UI
    属性值,如大小和职位。替换成系统提供的也许动态修改的值,推荐应用
    Auto Layout 来布局。

  • 检查程序中 UI 控件修改或者滋生的布局或出示问题,如 UISwitch
    更宽了,grouped UITableView 没有边距了,UIProgressView 更细了。

  • 适配动态属性,在 iOS7
    中,用户可以团结调整字体大小,你的主次必须做出调整。

  • 检查一下你的顺序内所使用的手势,确保别和 iOS7
    中新增的决定核心所用的手势争持,还有 NavigationController
    滑动重回的手势。 (comment: 应该多多主次会躺枪)

  • 裁撤程序中用到的阴影、渐变、不规则形状吧,iOS7
    的计划性美学强调扁平化和分支。

  • 保险程序中从未动用被 iOS7 摒弃调的 API。

Must Do

  • 更新程序图标 (Icon),iOS7 中先后 icon 是 120 x 120 像素。(comment:
    不知情又从不出新分辨率的装备,只是提高系统,icon
    的像素为啥要变?)

  • 履新程序启动画面 (Launch image),
    程序启动图片必须包含状态条。(comment:
    这些大家直接就带着事态条的,在此之前高出的 20 像素现在能成名了,哈)

  • 支撑高清屏(Retina display)和 HUAWEI5。(comment: 怎么现在见到
    Retina 屏我会笑而不语呢,在 Android 满大街都是 1920 x 1080
    的现在,你那一点分辨率也还叫高清屏?)

适配琢磨

  • 是不是使用 Auto Layout 来计划 App

    假使您的顺序现在利用了 Auto
    Layout,那么你的适配工作就相对简单一些。因为 iOS7
    与前边版本在界面元素上有很多性质设置都不雷同,而且 iOS7
    所有应用程序内的字体大小都是随着系统字体可调动的,所以只要选用了
    Auto Layout 就会相比较便于一些。

    假若你还没有用 Auto
    Layot,提出您现在就初叶采取,特别是一旦你需要同时襄助不同的类别版本。假若你完全使用代码布局,你就不能够不在字体大小改变时做相应的拍卖。

    (comment: 晕,从最起初的 XIB,到 Auto Layout 和
    Storyboard,我都没用过,你看看 Github
    上有多少代码应用了。相信广大程序员都更爱好纯代码布局,首先纯代码相比较清楚,不用对照那布局文件和源文件看,其次纯代码复用和改动方便,相信我还会将纯代码举办到底的。)

  • 是不是需要协理 iOS6

    iOS
    用户平日都会急忙的就会将手中的配备升级到最新的体系,他们期待见到她们喜爱的利用可以很好适配。

    万一出于商业原因,你的行使必须帮忙 iOS6,这您也最好可以同时提高支撑
    iOS7。

    (comment: 集团才在 金立5 推出后只可以丢弃 4.3
    以下的装置,从前都是永葆 3.0 的有木有? 现在你就研商 iOS6
    要不要协助,有本事你又弄个本子不配合,要么匡助iOS7,要么辅助以下版本啊。我揣度只要技术允许,大家都必须援助到最大的范围)

常见你的使用能够分成几类:

  • 标准 应用完全只行使 UI基特(Kit) 提供的控件,没有和谐定制。(comment:
    这种应该相应唯有系统自带的“设置”吧,哈哈)

  • 自定义 应用完全拔取自定义的 UI,没有利用 UIKit中的元素。(comment:
    那种应用应该也不多吗,除非哪个牛逼的商店可以完全的开发出一套自己的
    UI 组建)

  • 混合 应用中应用了 UI基特(Kit) 中的控件,也依赖 UI基特自定义了投机的控件。(comment: 我深信几乎所有的采纳应属于这一类)

首先种和第二种,假设不是规划风格上与 iOS7
的指导规范不一样,基本代码就可知不用修改在 iOS7
上运行。第三种,呵呵,自己看着办吧(猜度普遍 iOS
程序员又得熬多少个通宵去适配了)。

其他

依附官方推荐的用于版本判断的代码供参考

 

 NSUInteger DeviceSystemMajorVersion();
  NSUInteger DeviceSystemMajorVersion() {
     static NSUInteger _deviceSystemMajorVersion = -1;
         static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
         _deviceSystemMajorVersion = [[[[[UIDevice currentDevice] systemVersion]
  componentsSeparatedByString:@"."] objectAtIndex:0] intValue];
});
     return _deviceSystemMajorVersion;
  }
  #define MY_MACRO_NAME (DeviceSystemMajorVersion() < 7)


 

(注:作品简要翻译自 Apple 《iOS 7 UI Transition
Guide》
,由于该文档为开发者预览版,并非末了文档,所以
iOS7 正式上线可能有一些不同)

准备工作

iOS7
带来了重重界面上的改动,如:没有边框(圆角)的按钮,半晶莹剔透的工具条(UINavigationBar,
UIToolBar 等),视图控制器的全屏布局等。使用 Xcode5,你就足以创制 iOS7
工程,并在 iOS7 模拟器中看看 iOS7 的界面。

www.316.net亚洲必赢 1UIStyle

从 iOS7 系统利用的改观可以见见,iOS7
本次改变不是小打小闹,是彻彻底底的变通。苹果认为以前的 UI
风格辨识度很高,可是视觉感受太不雷同(comment:
你们换个设计师,大家苦逼的程序员就得遵从你的审美来修改、适配)。

Note: 即便 iOS7
所有的界面元素都看起来不相同,可能扩张了新的效用,不过之前你所耳熟能详
UI基特(Kit) APIs 的大都都是一样的。

趁着你对 iOS7 继续的钻探,你可能发现 iOS7 界面风格多少个特性:

  • 重视内容 用户界面帮衬用户领会内容,并与之并行,而不是为了界面而忽视了内容。(comment:
    你们事先做拟物化风格时,怎么没觉察到内容的重点?)
  • 清晰 文本在不同的字体大小下都是清楚可读的,图标也是能清晰的表明意思,不需要过多的修饰。职能指点规划,而不是相反(comment:
    这点我要么相比认同的,可悲的是当下合作社在这地点有点误入歧途吗)。
  • 深度 视觉上的层次显著和逼真的手势操作可以增长用户愉悦和了解。

为了将下面这么些骨干的基准融入到 iOS 的体验中,iOS7
抓住了如此的机遇再次定义了先后要传达给用户的为主目的和机能。尽管你或许还并未完全准备好立时使用这样的修改你的计划,可是假使您准备为
iOS7 升级或支付你的应用时,你就需要依照下边的点拨原则来做。

UI 变化举例

UIViewController

wantsFullScreenLayout被废弃,新增edgesForExtendedLayout,extendedLayoutIncludesOpaqueBars,automaticallyAdjustsScrollViewInsets等特性来支配视图控制器的布局。

UIView

新增tintColor性能,默认继承自父视图, 原来工具条(Bar)的 tintColor
属性改成了barTintColor

字体

通过 UIFont
中的preferredFontForTextStyle性能回去当前系统的书体,确保内容在不同字体下都能很好突显。

Bars 和 Bar Buttons

status bar 默认是晶莹的,其他 bar
都是半晶莹剔透的,一个通用规范:确保内容填充 Bar 下边的区域。

navigationBar 在UIBarPositionTopAttached形式下会与 status bar
融合的,所以假使接纳图片需要用 128px((20 + 44) x 2)。

UITableView

Grouped table 没有边距了,TableView 上的图标(如:Checkmark,Disclosure
indicator,Delete button 等)都变了。

(comment:
就举这么多吧,反正这一次是侧头侧尾的改观,每一个控件都亟待探讨,
没有完全安装原文翻译,可能会有地点翻译得适量,请赐教!)

====== 全文完 ======

Posted by XiaoYi_HD – 6月 11 2013
如需转载,请阐明: 本文来自 Esoft Mobile