原文来自于:http://www.infoq.com/cn/news/2014/02/ios-ui-design

Apple官方推出的“iOS人机界面准则”一直被iOS开发者奉为绝对的设计参考宝典,特别是iOS7系统推出以来,Apple公司对该准则进一步做了更新。最近,国内知乎社区的郎启旭推出了“iOS人机界面准则”完整的中文版,使iOS国内开发者可以快速上手。

iOS人机界面准则主要分为UI设计基础、设计策略、iOS技术、UI元素、图标和图像设计等几个大类,其中每个大类有细分为许多小节,对iOS界面设计原则描述的非常详尽。

准则一开始就谈到了iOS7的设计主旨:

  • 依从(Deference)。用户界面(UI)应当有助于用户理解内容并与之互动,而非对抗。
  • 清晰(Clarity)。文字在每种字号下都易于阅读,图标表意准确清晰,装饰也恰到其度,并以对功能的无比关注驱动设计。
  • 纵深(Depth)。视觉上的分层界面和逼真的动作使其更赋活力,提升了用户的愉悦和理解。

对于“依从”这个主旨,准则举了几个实际设计的例子来阐述其表现方式,包括:

  • 充分利用整块屏幕。重新考量对插图和视觉框架的使用,可以考虑让内容扩展到屏幕边缘。“天气”就是一个很好的范例:漂亮的全屏界面非常直观地呈现出某个地点当前天气的关键信息,而且还有
    多余空间可以显示每个小时的天气数据。
  • 重新考量模拟现实的视觉表现。浮雕、渐变和阴影效果有时会让界面元素变得沉重,进而喧宾夺主。相反,要突出内容并让界面扮演一个辅助性的角色。
  • 通过半透明的界面元素来暗示背后的内容。半透明效果(如“控制中心”)可以提供情境,帮助用户看到更多可用的内容,并给人一种短暂停留的暗示。在 iOS 7 中,半透明元素只模糊渲染在其正背后的内容,给人一种透过宣纸的感觉,但屏幕上的其他部分并不会模糊。
  • 大量使用留白。留白会让重要内容和功能更为突出、更易于理解。同时,留白还可以传达一种安静平和的感觉,这会让 app 看上去更加专注和高效。
  • 用色彩简化界面。使用一种主题色——例如「便签」中的黄色——来突出重点,并巧妙地暗示其交互性。同时,这会给 app 带来一致性的视觉主题。内置的 app 使用了一系列纯净的系统颜色,而每一种颜色在深色浅色两种背景中看起来都很好。
  • 拥抱无边框按钮。在 iOS 7中,所有的条栏按钮都没有边框。无边框按钮会在按钮的内容区域内使用情境、颜色和一个动作导向的标题来暗示其交互性。如果合适,还可以通过显示纤细的边框或者浅色背景来让按钮更加突出。
  • ……

在“启动和停止”一节中,准则特别强调:一般来说,在接触新 app 的一两分钟内人们就会决定是否继续使用。如果你把握住这转瞬即逝的机会迅速呈现有用的内容,就可以激发新用户的兴趣,并给所有用户带来出色的体验。不要在人们安装好你的 app 后告诉他们需要重启设备。重启会耽误时间,还会让你的 app 看起来不太可靠且难以上手。

避免要求用户提供设置信息,代之以:

  • 关注 80% 用户的需求。这样,大部分用户不需要进行任何设置,因为你的 app 已经按他们期望的方式设置好了。如果有一些功能只有极少数用户可能需要或者大部分用户只会用一次,请抛弃这样的功能。
  • 尽可能通过其他方式获取信息。如果你可以使用任何内置程序或设备中用户所提供的信息,那就从系统中获取这些信息,而不要让用户再输一次。
  • 如果你确实需要提供设置信息,请让人们在你的 app 中输入。然后,尽快存储这些信息(例如,在你 app 的设置中)。这样一来,在有可能体验到你 app 的乐趣前人们不会被迫切换到 iOS 的「设置」中了。如果人们将来需要修改这些信息,可以在任何时间前往 app 的设置页面进行修改。

准则在“设计策略”部分指出,一致性可以让用户将 app 中的某部分界面的经验和技巧复用到其他地方,或者从一个 app 复用到另一个 app。一致性的 app 不是对其他 app 的简单复制,也不是风格上的一成不变,相反,它关注用户所习惯的方式和标准,并提供一个具有内在一致性的体验。

要判断一个 iOS app 是否符合一致性原则,可以通过以下几个问题来考量:

  • App 是否和 iOS 标准保持一致?它是否正确地使用了系统控件、视图和图标?是否以用户所期望的方式利用了设备的特性?
  • App 自身是否具有内部一致性?文本内容是否使用了统一的用辞和风格?同样的图标是不是通常意味着相同的意思?当用户在不同的位置执行同一个操作时是否符合其预期?自定义的界面元素外观和其行为是否保持一致?
  • App 是否在合理范围内与之前的版本保持一致?术语和含义是不是仍然相同?基本概念和主要功能是否基本不变?

准则强调:在整个开发过程中,始终要用你的app 定义陈述去判断功能点、控件和用词是否妥当。例如:

  • 当你考虑增加一个新功能时,问问自己,这对你 app 的主要目的和目标用户是不是不可或缺?如果不是,把它放在一边,它可能是构建另一个 app 的基础。例如,你已经确定你的用户喜欢探索烹饪,那么强调打包好的蛋糕和加工好的熟食可能不会被用户喜欢。
  • 当你考虑 UI 的外观和行为时,问问自己,你的目标用户是喜欢简洁流畅的设计,还是一个更明显的主题风格?以用户对你 app 的期望为指引,例如使用 app 去完成一项重要任务,快速找到一个答案,探究内容详情,或者为了娱乐。尽管你的购物清单 app 需要易于理解而且立即可以上手,但你的用户可能会更喜欢一个展示着大量美味食材图片的界面主题。
  • 当你在考量术语时,努力去迎合你的受众的专业认知。例如,即便你的受众不太可能由专业厨师组成,但你也应该明白,用户会希望看到配方和技术方面的专业术语。
  • 尽可能避免增加用户的认知负担。用户熟悉标准 UI 元素的外观和行为,所以不需要停下来去思考如何使用它们。但当他们面对那些和标准 UI 外观和行为完全不一样的元素时,先前的经验毫无用处。除非你独特的元素可以让任务执行更容易,否则用户可能不会喜欢被迫去学习新的流程,而这些流程又不会在其他 app 中用到。
  • 重新设计标准控件前要三思。如果你正在计划重新设计一个标准控件,要确保你的新设计提供了和标准控件一样多的信息。例如,如果你设计的开关控件不能表现出两个相反的状态,用户可能不会意识到这是一个两态控件。

有关iOS 7人机界面准则的详细内容可以查看Apple官方文档,也可以查看郎启旭翻译的中文版

转:iOS 7人机界面准则的更多相关文章

  1. IOS 9人机界面指南(1)

    http://www.uisdc.com/ios9-interface-guideline-ui

  2. 转:超实用的IOS 9人机界面指南(1):UI设计基础 (腾讯力作)

    转: http://www.uisdc.com/ios9-interface-guideline-ui

  3. 告别被拒,如何提升iOS审核通过率(上篇)

    iOS审核一直是每款移动产品上架苹果商店时面对的一座大山,每次提审都像是一次漫长而又悲壮的旅行,经常被苹果拒之门外,无比煎熬.那么问题来了,我们有没有什么办法准确把握苹果审核准则,从而提升审核的通过率 ...

  4. fir.im Weekly - iOS 保持界面流畅的技巧

    生命不息,coding 不止.本期 fir.im Weekly 收集了微博上的热转资源,包含 Android.iOS 开发工具.源码分享,产品 UI 设计的好文章,还有一些程序员成长的 Tips,希望 ...

  5. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  6. iOS的非常全的三方库,插件,大牛博客

    转自: http://www.cnblogs.com/zyjzyj/p/6015625.html github排名:https://github.com/trending, github搜索:http ...

  7. iOS开发之资料收集

    github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...

  8. iOS 第三方库、插件、知名博客总结

    iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...

  9. ios AppStore 帐号申请

    App Store最新审核指南 https://developer.apple.com/support/app-review/cn/ http://www.woshipm.com/ucd/144218 ...

随机推荐

  1. 关于开发板不能ping通外网IP

    最近在做远程监控的项目,打算用开发板给一个网站发送数据包.不过发现开发板只能ping通同一局域网内的ip,外网的ip不能ping通.纠结了半天发现是网关没有设置的原因.下面来说说如何解决这个问题. 首 ...

  2. fstream的用法

    本文转载自 http://www.newxing.com/Tech/Program/Cpp/577.html   C++文件流:fstream // 文件流ifstream  // 输入文件流ofst ...

  3. String的equals方法和==

    String类的对象是字符串常量,一切看起来改变了String对象的操作,其实只是改变了字符串引用变量所引用的字符串罢了. Java中的字符串存放在一个公共的存储池中,引用指向存储池中相应的位置,编译 ...

  4. Drainage Ditches - poj 1273(网络流模板)

    题意:1是源点,m是汇点,求出来最大流量,没什么好说的就是练习最大流的模板题 ************************************************************* ...

  5. JS~js里实现队列与堆栈

    在面向对象的程序设计里,一般都提供了实现队列(queue)和堆栈(stack)的方法,而对于JS来说,我们可以实现数组的相关操作,来实现队列和堆栈的功能,看下面的相关介绍. 一 看一下它们的性质,这种 ...

  6. hdu5032 Always Cook Mushroom

    题意是这样,给定一个1000x1000的点阵.m组询问.每次询问一个由(0,0).(x,0)点一以及从原点出发的方向向量(a,b)构成的直角三角形包围的点的权值和. 点的权值是(x+A)(y+B),当 ...

  7. Python标准库:内置函数bytearray([source[, encoding[, errors]]])

    返回一个新字节数组.这个数组里的元素是可变的.而且每一个元素的值范围: 0 <= x < 256.能够通过"字节与字节数组操作"章节来查看相关字节数组的内容.以下说明一 ...

  8. ubuntu下libjson-c库的使用问题备忘

    首先安装libjson的c库 #apt-get install libjson0-dev libjson0 安装好后查看/usr/include/json下是否有头文件,有就对了! gcc -o ...

  9. ANDROID内存优化(大汇总——中)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

  10. Java基础知识强化89:Date类之Data类概述及其方法

    1. Date类概述 类Date表示特定的瞬间,精确到毫秒 2. 构造方法 public Date():根据当前默认毫秒值创建日期对象 public Date(long date):根据给定的毫秒值创 ...