适配和布局
·适配创建
通常来说,人们想要在他们所有的设备上使用他们最喜爱的app,不论是在设备什么样的定向上。在iOS8和稍后的版本中,你可以使用尺寸类和自动布局在设备放置环境改变时候通过定义屏幕布局,视图控制器和视图应当如何调整来帮助你满足这个期望。放置环境的概念可能会涉及到整个屏幕或者仅仅是屏幕的一部分,比如一个弹出菜单的区域或者是在一个分离的视图控制器中的主要视图。
iOS定义了两种尺寸类别:常规和紧凑。常规尺寸类和宽松的空间联系到一起,紧凑尺寸类和有限的空间联系到一起。为了描述一种放置环境,你需要指定一个水平尺寸类和一个垂直(竖直)尺寸类。正如你猜的那样,一个iOS设备对于竖直定向能够使用一个系列的尺寸类,对于水平定向使用一个不同系列的尺寸类。
当一个放置环境的尺寸类改变的时候,iOS可以自动的产生各种各样的布局改变。举例来说,当垂直尺寸类从紧凑变为常规的时候,导航栏和工具栏会自动变高。
当你依靠尺寸类来驾驭布局中的改变的时候,你的app在任何放置环境下都可以看起来很棒。要想学习在Interface Builder中如何使用尺寸类,请参阅尺寸类设计指导。注意:在一个尺寸类中,务必使用自动布局来对布局产生小的调整,例如拉伸内容或者压缩内容。
下述的具体例子能够帮助你看到尺寸类是如何描述不同设备的放置环境的。举例来说,iPad在长度和宽度以及两种定向上使用了常规尺寸类。换句话说,iPad的放置环境总是水平常规和竖直常规的。
iPhone的放置环境可能会改变,这取决于设备类型和它是何种定向。
在竖直放置环境下,iPone6 Plus使用紧凑的水平尺寸类和紧凑的垂直尺寸类。在水平放置环境下,iPhone6 Plus使用常规的水平尺寸类和紧凑的竖直尺寸类。
所有的其它iPhone模型,包括iPhone6,都是用同样系列的尺寸类。
在竖直放置环境下,iPhone6,iPhone5和iPhone4s都使用紧凑的水平尺寸类和常规的垂直尺寸类。在水平放置环境下,这些设备水平和垂直都使用紧凑的尺寸类。
·在每种环境下都提供一种绝佳的体验
当你利用适配性(自适应性)的时候,你可以确保你的UI对放置环境的改变做出合适的应对。遵循这些指导原则在所有的设备和定向上给用户带来一种绝佳的体验。
·在所有环境中保持你的注意力在主要内容上。这是你最优先要做的事。人们使用你的app来浏览他们关注的内容并和它们进行交互。当放置环境改变时候改变你的焦点会使用户产生迷惑,并让他们感到他们已经失去了对app的控制。
·避免布局上不必要的改变。当人们旋转设备或者在一个不同的设备上运行你的app的时候,在所有环境下相似的体验经历可以让人们保持他们的使用模式(行为习惯?)。举例来说,如果你使用一个水平常规环境下地网格来陈列图片,即使你可能得调节网格的维度,但是你没有必要用水平的紧凑环境下的列表来陈列相同的信息。
·直接告诉用户如果你的app只能在一中定向下运行。人们希望在不同的定向情况中使用你的app,当你能满足这个愿望的时候,这最好不过。但是如果你的app只能在一中定向下运行很重要的话,你应该:
·避免摆放告诉人们旋转设备的UI元素。运行在支持的定向上清楚地告诉用户去旋转设备,如果有必要,不要再UI上添加不必要的装饰。
·支持定向的变体。举例来说,如果一个app只能在水平定向下运行,不论Home键是在左边还是右边握持设备,人们都应该能够使用它。并且如果人们在使用app的时候把设备旋转了180度,如果app的内容能够也旋转180度来做回应,那是最好不过的。
·如果你的app在用户输入(输入有很多形式)的时候解释了在设备定向中的改变,那就以app特定的方式处理设备旋转。举例来说,一个让人们通过旋转设备来移动游戏里内容的游戏,不能以旋转屏幕的方式来回应设备的旋转。在像这样的情况下,你应该以要求的定向所有的变体加载,并且在app的主任务开始之前允许人们在不同的变体之间切换。一旦人们开始主任务就开始以app特定的方式来回应设备的移动。
·使用布局来传达
布局不仅仅是包含了在一个app屏幕中UI元素如何显示。在你的布局中,你向用户展示什么是最重要的,他们的选择是什么以及事物之间是如何相关的。
·通过提升重要内容或者功能性使聚焦于主任务变得容易。实现这个原则的好方法是把重要的事物放在上半屏幕---并且按照从左到右的惯例---靠近屏幕左边。
·使用可视化的影响和平衡来向用户展示屏幕上元素的相对重要性。大事物吸引眼球并且倾向于看起来比小物体更重要。大事物也很方便用户取触碰,这使得它们在一些app中尤其有用---例如Phone和Clock---用户经常在容易分心的环境中使用这些app。
·使用对齐来简化浏览并且传达分组和体系。对齐倾向于使一个app看起来整洁和有组织。当用户滚动一屏幕的信息的时候,对齐还能够给予用户空间来聚焦于内容。不同信息分组的缩进和对齐传达出分组是如何关联的,并且用户找到特定事物会更容易。
·确保主要内容在默认尺寸用户就能理解。例如,用户不应该不得不水平滚动来阅读重要文本,或者放大来看重要的图片。
·准备好字号的改变。用户希望大多数app当他们在设置中选择一个不同的字号的时候能够合适地做出回应。为了适应一些字号改变,你可能需要改变布局。想获得更多关于你的app显示字体的信息,请参阅“文本应当总是清晰地”。
·尽可能地避免在你UI中出现不一致的外观。通常来说,有相同功能的元素应该看起来相似。人们经常认为他们注意到的不一致一定存在一个原因。他们倾向花费时间来找出这个原因。
·通过给予每个交互元素足够的空间使人们很容易与内容和控件交互。给予可触碰控件一个44x44的点击目标。
(累死了,这个章节战场-_-!)