[原文]
弹出框是当你点击控件或一个区域时出现在屏幕的其他内容之上的瞬时的视图。通常,弹出框包含一个指向产生它的位置的箭头。弹出框可以是非模态或模态的。弹出框在点击屏幕的其他地方或弹出框的按钮时消失。模态的弹出框只在点击弹出框上的取消按钮或其他按钮时消失。
弹出框在大屏幕上最合适,并且可以包含任何类型的元素,包括导航栏,工具栏,选项卡栏,表格,集合,图片,地图,自定义视图。当弹出框显示时,不能和其他视图交互,直到弹出框关闭。 使用弹出框显示选项或者和屏幕上的内容相关的信息。例如,许多iPad App,当你点击Action按钮是实现分享选项的弹出框。
避免在iPhones上,显示弹出框。 一般来说,在 iPad App上,弹出框应该尽量不使用。iPhone App中,在全屏模式视图中,利用所有可以使用的空间展示信息,而不是在弹出框中。相关指导,见Modality。
只在确认和引导时使用关闭按钮。 关闭按钮,如取消或完成,如果它提供了明确的信息,如退出时保存或不保存改变,就值得增加这些按钮。一般来说,弹出框在不再需要的时候,自动关闭。在大多数情况下,弹出框应该在点击弹出框区域外的地方或在弹出框中选择一个项目时关闭。如果多选模式,弹出应该一直打开,直到明确的点击其他地方关闭它。
当自动关闭非模式弹出框时,都保存内容。 很容易在无意间点击屏幕上弹出框以外的地方,关闭非模式的弹出框。只有当人们点击取消按钮时才放弃内容。
在屏幕上合适的位置显示弹出框。 弹出框的箭头应该尽可能地直接指向显示弹出框的元素。由于弹出框不能在屏幕上拖拽,因此弹出框不能覆盖重要的内容,因为这些内容当人们使用弹出框时,需要看。弹出框也不能覆盖,点击显示该弹出框的元素。
一次只显示一个弹出框。 同时显示多个弹出框让交互变得杂乱,并引起混乱。永远不要显示从一个弹出框打开另一个弹出框的级联弹出框或层级弹出框。如果你需要显示一个新的弹出框,先关闭其他的再打开。
不要在弹出框上覆盖另一个视图。 除了Alert以外,任何视图都不能显示在弹出框之上。
如果可能的话,让用户在点击打开一个弹出框时,关闭另一个弹出框。 当多个不同的按钮每个都打开弹出框时,避免额外的点击尤其有用。
避免弹出框太大。 弹出框不应该占整个屏幕。让弹出框足够展示自己的内容,并能指向来自那里就可以了。注意,系统会自动的调整弹出框的大小,以确保弹出框和屏幕能很好的匹配。
确保自定义的弹出看起来像系统提供的弹出框。 尽管你可以自定义任何样式的弹出框,但是避免创建一个人们认不出是弹出框的设计。当他们包含标准的空间和视图时,弹出框才能很好的使用。
在改变弹出框的大小时,要平滑过渡。 一些弹出框提供相同信息的关闭和展开视图。如果你调节这个弹出框的大小,平滑的变化,可以避免人们以为是使用了一个新的弹出框替换了旧的弹出框。
对于开发人员的指导,见UIPopoverPresentationController.