内容简介:触摸并保持所选内容使其看起来上升并粘附到用户的手指上。在拖动内容时,动画和视觉提示识别可能的目的地。系统还会显示一个标识,指示何时无法删除,或者会导致重复内容而不是移动内容。有关开发人员指导,请参阅UIKit中的拖放操作。将所选内容从原位置拖放移动到目标位置。这些位置可以位于同一容器中,如文本视图,也可以位于不同的容器中,例如拆分视图两侧的文本视图。例如,在Notes中,用户可以将所选文本拖动到同一音符中的新位置。在“提醒”中,用户可以将单个提醒拖出一个列表并将其放入另一个列表中。在iPad上,源位置和目
触摸并保持所选内容使其看起来上升并粘附到用户的手指上。在拖动内容时,动画和视觉提示识别可能的目的地。系统还会显示一个标识,指示何时无法删除,或者会导致重复内容而不是移动内容。有关开发人员指导,请参阅UIKit中的拖放操作。
来源和目的地
将所选内容从原位置拖放移动到目标位置。这些位置可以位于同一容器中,如文本视图,也可以位于不同的容器中,例如拆分视图两侧的文本视图。例如,在Notes中,用户可以将所选文本拖动到同一音符中的新位置。在“提醒”中,用户可以将单个提醒拖出一个列表并将其放入另一个列表中。
在iPad上,源位置和目标位置也可以存在于不同的应用程序中,从而实现跨应用程序交互,例如将照片从Safari中的网页拖动到Mail中的新邮件。在拖动内容时,用户可以通过多任务处理访问另一个应用程序,退出到主屏幕,或从屏幕底部向上滑动以显示Dock。
注意
在应用程序之间拖放内容总是会导致内容的重复,而不是移动。
支持拖放
拖放是一种高效,直观的功能,用户希望在整个系统中普遍实现。如果您的应用包含或生成人们可能想要移动,复制或插入的文本,照片,视频,音频或其他内容,您的应用应支持拖放。
为所有可选择和可编辑的内容提供拖放功能。可选内容应该是可拖动的,可编辑内容应该接受删除的内容。另外,请确保您的应用支持在这些区域中进行复制和粘贴。
允许在适用时删除控件上的内容。通常,配置允许数据输入或选择的控件(如文本字段)接受已删除的内容。
尽可能使用标准文本视图和文本字段。这些系统提供的元素包括内置的拖放支持。有关相关指导,请参阅文本字段和文本视图。有关开发人员指导,请参阅UITextField和UITextView。
为了提高效率,请考虑支持多项拖放。在许多应用程序中,用户可以用一根手指拖动单个项目,在拖动时,通过用另一个手指点击它们来选择其他项目。所选项目一起移动并显示堆叠在拖动原始项目的手指下方。然后,用户将这些项目作为一组拖放,并将它们放在所需的目的地上。例如,主屏幕允许选择多个应用程序图标并一次拖入文件夹。某些应用程序(如“照片”)提供了一种选择模式,可以在拖动之前选择多个项目。
确定在应用程序中拖放内容是否应导致移动或复制。通常,当源和目标容器相同(拖动文档中的文本)时,移动是有意义的,并且当副本不同时(在文档之间或应用程序之间拖动),副本是有意义的。然而,情况并非总是如此。最重要的是,拖放操作应该直观。在“提醒”中,在列表之间拖动提醒会移动它们而不是复制它们,因为这是人们所期望的。在应用程序之间拖放内容始终会生成副本。
只要有可能,让人们撤消拖放。通常,当用户无意中将内容丢弃到错误的目标位置时,他们应该能够使用“撤消”将应用程序恢复到之前的状态。也就是说,应删除已删除的内容,如果它已从应用中的其他位置移动,则会还原到其原始位置。
考虑启用弹簧加载。通过弹簧加载,用户可以通过拖动选定的内容来激活某些控件(如按钮和分段控件),并暂停而不会丢弃内容。例如,在“邮件”中,可以将选定的邮件拖到导航栏的“后退”按钮上,以访问邮箱层次结构中的其他位置。永远不要让弹簧加载是激活控件的唯一方法。用它作为可以发现的点缀。在大多数情况下,弹簧加载的控件也应该响应轻击手势。有关开发人员指导,请参阅UISpringLoadedInteraction。
提供拖动的内容
如有必要,自定义拖动项预览。通常,在用户手指下显示的预览应该是被拖动内容的半透明表示。此外观提供上下文,指示正在进行拖动,并使用户能够查看拖动内容下方的目标。
尽可能提供拖动数据的多种表示,从最高到最低保真度排序。例如,在提供艺术线条时,您的应用可以按顺序提供PDF矢量表示,具有透明度的无损PNG图像和无透明的有损JPEG图像。这样,目的地可以选择它可以导入的最高质量的表示。
适用时,将自定义对象的本机版本显示为最丰富的数据形式。例如,允许人们拖动图表的应用程序应首先显示本机图表对象。然后,它应该为图表提供类似替代品的图像版本 – 适用于不支持图表对象的应用程序。
当应用程序内容的传输耗时或资源密集时,实施文件提供程序扩展。即使您的应用不再运行,文件提供程序扩展也会管理传输过程并确保其完成。请注意,在用户删除内容之前,传输过程不会开始。有关开发人员指导,请参阅NSFileProviderExtension。
当您的应用内容需要转移时间时,请提供进度信息。如果必须下载内容或大文件需要时间复制,请提供进度信息。至少,提供内容的总大小,以便目的地可以计算剩余的时间量并显示适当的进度指示器。有关开发人员指导,请参阅NSProgress。
接受丢弃的内容
使用视觉提示识别潜在目的地并预览删除内容的效果。突出显示,插入点指示符和动画都是识别可能目的地的好方法。当内容被拖过时,视图可以巧妙地闪烁并改变颜色,或者段落可以分开以为拖动的图像腾出空间。当屏幕上有多个可能的目的地时,一次识别一个目的地。如果源容器和目标容器相同,则可能不需要突出显示,除非将内容完全拖出源,然后重新进入。确保在删除内容或不再位于目标上方时删除突出显示。
适当时自动滚动目标的内容。当内容被拖动到目的地的边界之外时,您的应用可能需要确定是否滚动目标的内容或允许用户继续拖动到完全不同的目的地。如果您的应用允许用户继续拖动,请考虑定义一个区域,当拖动的项目位于其上方时,该区域会导致自动滚动。例如,当内容被拖动到正文区域的顶部或底部时,Mail中的冗长草稿消息会自动滚动。标准文本视图和文本字段自动采用此行为。
提取并显示已删除内容的最丰富表示。例如,您的应用可能会提供图表的多个表示形式。如果您的应用程序支持图表,则可以提取并显示本机图表对象。如果您的应用不支持图表,则可以提取并显示图表的图像版本。
适用时,仅提取已删除内容的相关部分。例如,如果用户将联系人从“联系人”拖动到“邮件”中的收件人字段,则仅使用名称和电子邮件地址,而不是联系人的地址信息。
删除内容后在表视图和集合视图中显示占位符。占位符会在完成转移后临时指明内容的驻留位置。
删除内容需要时间传输时显示进度。默认情况下,当应用程序之间发生耗时的传输时,系统会显示应用程序模式警报。考虑自定义显示进度的方式 – 例如在表视图或集合视图中显示占位符上的进度指示器 – 这样就不会阻止用户使用您的应用程序。请注意,在用户删除内容之前,传输过程不会开始。
丢弃的内容启动进程时提供反馈。如果用户将内容放到启动任务的控件上 – 例如,将视频上传到共享站点 – 则表明该任务已经开始,并让用户了解其进度。
丢弃失败时通知用户。如果无法插入丢弃的内容,可能是因为文件传输被中断,请通知用户丢弃不成功。
对删除的文本应用适当的样式。当源和目标支持相同样式的文本属性时,删除的文本应保持其原始字体,字体,大小和其他属性。否则,删除的文本应采用目标的样式。
当用户无法立即撤消拖放时,请考虑提供一种微妙,直观的退出方式。例如,共享应用程序可能会在发布已删除的内容之前显示中间份额表。此共享表可以提供一种方式来提供状态消息等附加内容,同时还提供取消按钮。将照片拖入共享照片流时,照片会出现此行为。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- GUI 界面如何设计?
- 构建一个计算器:UI界面设计
- OSCHINA APP 4.9.4 发布,全新界面设计来袭
- iOS12界面设计指南之功能(System Capabilities)–虚拟现实
- Opera 发布 Reborn 3 开发者版本,重新设计界面
- 界面重新设计、中文支持更佳,DEVONthink 即将迎来 3.0 更新
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Hit Refresh
Satya Nadella、Greg Shaw / HarperBusiness / 2017-9-26 / USD 20.37
Hit Refresh is about individual change, about the transformation happening inside of Microsoft and the technology that will soon impact all of our lives—the arrival of the most exciting and disruptive......一起来看看 《Hit Refresh》 这本书的介绍吧!