IOS模态窗口的作用与设计原则

模态窗口作为一种屏幕交互元素,以弹出的形式占据屏幕的部分区域,其设计的目的在于中断用户当前操作流程,引导用户聚焦于一个独立的操作流程或特定任务,从而保证操作的专注性与连贯性,避免用户被其他信息干扰。

一、从屏幕底部呈现

在IOS中模态窗口从底部向上出现,因为模态窗口会打断信息层级结构,从屏幕底部向上弹出会覆盖住标签栏,这就阻止了用户进一步深入APP,这种打断操作是有意为之,其目的是让用户集中注意力在模态窗口中的操作或任务。

二、用于简单任务、简单任务多步骤任务全屏内容展示

模态窗口可以用于简单任务多步骤任务全屏内容展示

下面以一个简单任务的操作流程来举例。比如设置提醒,设置提醒需要用户编辑或者修改输入字段,在此过程中保持专注,有助于用户不受干扰的完成任务,还可以降低用户因为误点其他元素而让操作报废的可能性,而对于需要处理复杂任务的操作流程,一般需要涉及多个步骤。

比如在钱包APP中添加银行卡,在这种情况下使用模态窗口,目的是防止用户在任务完成或者取消之前在APP中随意切换从而让用户集中注意力。

当查看文章视频,或者无需太多页面切换的全屏内容时也可以使用模态窗口。例如在建设APP中,通过打开一个健身视频来开始锻炼。

三、使用"取消"操作和首选操作关闭模态窗口

标签和交互操作的使用能够帮助用户清楚知道自己所在的位置,标题能够帮助用户明确模态弹窗的内容,右侧的标签一般用于首选操作,所以通常会用粗体显示来强调重要性,用简单的动词来做标签,能明确的高数用户点击之后会发生什么。

首选操作可以关闭模态窗口,同时保存上一步的操作,如果在模态窗口上尚未输入信息或者进行交互,首选操作不会激活,这样可以明确提示用户需要先填写字段才能保存或继续操作;当用户已经进行了操作,使用左侧的取消来关闭模态窗口,就表明用户要放弃当前的操作了。

如果在点击取消之前就已经输入了信息,这时就可以出现一个警告或者Action Sheet,让用户知道如果继续点击取消他们会丢失数据,但如果用户尚未与界面进行交互,点击取消就会直接关闭模态

窗口。

四、只在交互很少的模态窗口中使用关闭符号

关闭符号仅在模态窗口所需的交互很少,无需文本输入的时候使用。

有时可以在模态窗口中看到一个叉号,作为关闭窗口的主要方式,比如APP Store今日标签中的文章,关闭符号可以用在这里,是因为这里无需用户输入,简单的关闭操作有助于用户专注于内容。

下面举个例子来说明关闭符号,在需要输入和交互的模态窗口里为何会出现问题,当用户选择了一个筛选器后,如果点击关闭,刚刚的选择是会提交还是取消呢?如果没有明确的提示,用户就会不确定点击关闭会发生什么,所以最好在导航栏中使用标签,因为这样更明确,操作也更清晰。

五、尽量减少多个模态窗口的叠加

最后要避免在模态窗口上再去叠加窗口,因为这样做会过于复杂,模态窗口本身是支持子示图以及切换页面的。

在这个界面中文本字段和表格单元格可以进行选择和输入,因此可以进行交互,而不仅仅是查看,例如用户可以点击某个添加在行程上的一位朋友所在的表格单元格,点击之后可能会出现关于Kata Grella朋友的信息,并为用户提供将他从行程中移除的选项。不过添加好友和上传照片的入口此时都是可操作的状态,这些情况都是属于操作流程中的操作。首先用户要添加一份行程表,然后要在行程表上添加照片,上传照片的操作涉及到相当多的交互,比如要在相册中滚动并且选择一张新的照片,这样的操作也属于独立任务,选择好照片后该模态窗口可以关闭,用户又回到了之前的模态窗口里。

我们在设计时要尽量避免多个模态窗口的叠加,不过在某些情况下这也是必要的,因为可以帮助用户在子视图中保持注意力

文章结束啦,每天进步一点点,加油!!!

以上就是本篇文章的全部内容,学习笔记整理自 B 站视频:【视频标题】(链接:https://www.bilibili.com/video/BV1EYrTYfEPT?spm_id_from=333.788.player.switch&vd_source=d57ed8f83e9c00c01ca7916b0e6917ce),仅用于个人技术交流学习。

相关推荐
午安~婉1 小时前
挑战二:博客预览卡片
前端·javascript·html
环境栈笔记2 小时前
指纹浏览器安全评测方法:核对环境、数据与权限后再选型
前端·人工智能·后端·自动化
打妖妖灵滴哪吒2 小时前
前端开发/UI设计师-APP中如何进行可发现性设计
前端·ui
Kinghiee2 小时前
从使用场景切入前端常见设计模式
前端·设计模式
郭老二11 小时前
【前端】vue3:编译步骤
前端
不在逃避q12 小时前
Trae/Vs Code/Cursor命令行无法跑npm命令
前端·arcgis·npm
夏殇之殁13 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript
The Chosen One98513 小时前
高进度算法模板速记(待完善)
java·前端·算法
陈随易13 小时前
MoonBit抓包模块pcap,查看电脑的每一次联网通信
前端·后端·程序员