2.1 为iOS设计(Design for iOS)
  iOS体现以下主题:

  • 遵从:UI帮助用户理解界面内容并与内容交互,但绝不会与内容相互冲突。
  • 清晰:文本在任何尺寸下都是清晰易读,图标精确易懂,装饰微妙恰当,并且更加注重功能驱动设计。
  • 深度:可视的层次与真实的动态效果时刻传递着活力并能够提高用户体验。

  
  无论你是重新设计一款App还是开发一个全新的,考虑以下面的方式完成工作:
  首先,回顾过去app核心功能的UI,并找到(确定)它们之间的联系。
  其次,直接使用iOS的系统主题展示UI设计以及用户体验。谨慎添加细节和装饰,绝不盲目新增。
  最后,确保你的UI设计能够适配不同的设备和模式,这样用户才能够在尽可能多的场景下舒适地使用你的app。
  在这整个过程,时刻准备推翻先例,假设问题,让内容和核心功能驱动第一个设计细节。

2.1.1 以内容为核心(Defer to Content)
  尽管新鲜,漂亮的界面和流畅的动态效果是iOS体验的亮点,但内容始终是iOS的核心。
  下面是一些方法,可以确保你的设计在提升功能的同时以内容为核心。

  • 充分有效利用整个屏幕。天气应用就是一个很好的例子:漂亮的当前天气状况充满整个屏幕直观的显示了大部分的重要信息,同时也留出空间展示每个时段的详细数据。

  

  • 重新考虑物化和视觉特效的使用。边框,渐变,阴影有时候会导致UI上的元素变得更加厚重。这样就会盖过内容,或者与内容发生冲突。应该以内容为核心,让UI成为支撑内容的角色。

  

  • 让半透明的元素提示背后的内容。半透明的元素--例如控制中心--将提供的场景,这样的设计可以让用户看到更多可用的内容,并获得提示。在iOS,一个半透明元素只会使其正下方的内容变得模糊,给人的感觉就像是隔着宣纸,它并不会使屏幕的其他部分模糊。

  

2.1.2 保持清晰(Provide Clarity)
保持清晰是另一种确保你的应用以内容为核心的方法。下面是一些使最重要的内容和功能清晰易懂的方法:

  • 使用大量留白。留白空间使重要的内容和功能更加醒目以及容易理解。同时,留白的空间还能传达类似平静,安宁的感觉,这可以使app看起来更加专注,高效!

  

  • 让颜色使UI简洁明了。一个关键色—比如备忘录中的黄色—高亮重要的状态信息并巧妙指示交互。这同时还赋予app一个统一的视觉主题。内置app通常使用干净的纯色系系统颜色,这样无论背景明暗都会有很好的视觉效果。

  

  • 使用系统字体以确保清晰易读。系统字体通过动态类型(Dynamic Type)自动调节间距和行高,使文本在任何大小下都易读并且好看。需要注意的是无论你使用系统字体还自定义字体,必须确保采用动态类型(Dynamic Type),这样你的app就能够相应用户对不同文本大小的选择。

  

  • 使用没有边框的按钮。默认情况下,所有工具栏上的按钮都按钮都是无边框的。在内容区域,一个无边框的按钮以文本,颜色以及一个指引性的标题(这边指那个电话标识)来指示用户互动。当然,一个内容区域的按钮也可以通过使用较细的边框或者有颜色的背景来显示其不同。

  

2.1.3 用深度来交流(Use Depth to Communicate)
  iOS经常通过明显的层次展示内容来传达等级和位置关系,以便帮助用户更好的理解屏幕上对象之间的关系。

  • 在一个支持3D触控的设备上,通过peek,pop,快速操作让用户预览重要的内容,却不必须真的打开它们。(关于3D-Touch可以参考这里

  

  • 通过一个半透明的背景,以及一个看起来像悬浮在主屏上的文件夹将里面内容与屏幕的其他区域分隔开来。

  

  • 像提醒事项这里,将清单列表显示在不同的层次。当用户进入其中一个清单时,其余的清单一起折叠在屏幕的底部。

  

  • 日历在年,月,日视图切换时,使用增强的转场效果,让用户对它们的等级与层次有一个直观的认识。在这边这个滚动的年视图上,用户可以轻松地找到今天日期,以及进行日历上的其他操作。

  

  • 当用户选择一个月份,年视图缩小取而代之是月视图。今天的日期依然保持高亮,而年份则出现在返回按钮右边。这样用户就能够清楚的知道他们目前在哪个页面,从哪跳转过来的,如何跳转回去。

  

  • 类似的场景出现在用户选择一个日期时的时候:月视图会分割效果,日期所在的星期会被推到屏幕上方,同时出现日期每个时段的详细视图。日历通过每次这样的跳转加强了年,月,日之间的关系。

  

【译】UI设计基础(UI Design Basics)--为iOS设计(Design for iOS)(二)的更多相关文章

  1. 【译】UI设计基础(UI Design Basics)--导航(Navigation)(六)

    [译]UI设计基础(UI Design Basics)--导航(Navigation)(六)

  2. 【译】UI设计基础(UI Design Basics)--iOS应用解析(iOS App Anatomy)(三)

    2.1  iOS应用解析(iOS App Anatomy) 几乎所有的iOS应用都会用到UIKit框架中的组件.了解这些基础组件的名称,角色,功能可以帮你在应用界面设计时做出更好的决策. UIKit提 ...

  3. 【译】UI设计基础(UI Design Basics)--自动适配与布局(Adaptivity and Layout)(四)

    2.3  自动适配与布局(Adaptivity and Layout) 2.3.1  开发成自动适配(Build In Adaptivity) 用户通常希望在自己的所有设备,各种场景中使用他们喜欢的a ...

  4. 【译】UI设计基础(UI Design Basics)--启动与停止(Starting and Stopping)(五)

    2.4  启动与停止(Starting and Stopping) 2.4.1  立即启动(Start Instantly) 通常来讲,用户不会花超过两分钟的时候去评价一个新的应用.在这段有限的时间里 ...

  5. iOS10 UI设计基础教程

    iOS10 UI设计基础教程 介绍:本教程针对iOS初级开发人员,基于iOS 10系统,使用Swift 3.0语言讲解如何进行UI设计.本教程内容涵盖UI基础构成.UI元素.自动布局.自适应UI.UI ...

  6. iPhone/iPad/Android UI尺寸规范 UI尺寸规范,UI图标尺寸,UI界面尺寸,iPhone6尺寸,iPhone6 Plus尺寸,安卓尺寸,iOS尺寸

    iPhone/iPad/Android UI尺寸规范 UI尺寸规范,UI图标尺寸,UI界面尺寸,iPhone6尺寸,iPhone6 Plus尺寸,安卓尺寸,iOS尺寸 iPhone界面尺寸 设备 分辨 ...

  7. 【译】iOS人性化界面指南(iOS Human Interface Guidelines)(一)

    1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来 ...

  8. The iOS Design Cheat Sheet 界面设计速参

    http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/ With the release of iOS 7, app designers ...

  9. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(六)Picker View视图 学习笔记

    想对PickerView进行操作,只能在代码中操作. 下面 ,再添加三个label组件,然后将所有组件配置到代码中(看代码),然后要实现对PickerView的操作,就要实现它的DataSource协 ...

随机推荐

  1. struts2 json 定义全局Date格式

    使用struts2的json插件时,自己定义日期格式经常使用的方式是在get属性上加入@JSON注解,这个对于少量Date属性还能够,可是假设date字段多了,总不可能去给每一个date get方法加 ...

  2. IntelliJ Idea 常用快捷键列表(精简版)

    查找快捷键: Ctrl+N 查找类 Ctrl+shift+N 查找文件 Ctrl+B 找变量来源 Ctrl+E 最近打开的文件 Ctrl+Alt+B 选中方法的实现 Ctrl+F7  选中方法(属性. ...

  3. img标签块状与内联的博弈

    新手,请前辈们不吝赐教 说到html中img标签是内联还是块状元素,我们首先要知道什么是内联(inline),什么又是块状(block)? 我也在网上查看了一些别人分享的经验,有一个讲到了文档流的概念 ...

  4. [原创] Fragment的添加、移除问题

    安卓一直在进化,Fragment就是个好东西,如果早5年做安卓开发,真要麻烦的多. 关于Fragment的讲解,这里很详尽: Android Fragment 真正的完全解析(上) Android F ...

  5. JSP自定义标签库

    总所周知,JSP自定义标签库,主要是为了去掉JSP页面中的JAVA语句 此处以格式化输出时间戳为指定日期格式为例,简单介绍下JSP自定义标签的过程. 编写标签处理类(可继承自javax.servlet ...

  6. Premature optimization is the root of all evil.

    For all of we programmers,we should always remember that "Premature optimization is the root of ...

  7. Hash - a javascript dictionary object.

    Hash,in wikipedia, may relevant to many stuffs. In javascript, hash is a group of name/value pairs w ...

  8. 06MySQL数据库入门

    1.数据库的概念 数据库是保存数据的仓库,可以方便的把数据放进去,并且把数据根据各种需求取出来. 数据库管理系统(Database Management System,DBMS)是对数据库进行管理(增 ...

  9. ajax跨域传值

    <script type="text/javascript"> function xmlpage(){ $.ajax({ url:'http://localhost/3 ...

  10. Java hashCode 和 equals()

    1 Object中定义的hashCode() public int hashCode() Returns a hash code value for the object. This method i ...