模態(tài)讓用戶聚焦到某一個任務(wù)、消息或者視圖上而不能做別的事情,直到用戶完成了當(dāng)前的任務(wù)。
警告框(Alerts),彈出框(Popovers,iOS獨(dú)有),簡易菜單(Simple Menus,MD獨(dú)有),模態(tài)視圖(Modal Views,iOS獨(dú)有),確認(rèn)彈框(Confirmation Dialogs,MD獨(dú)有),全屏彈框(Full-screen Dialogs,MD獨(dú)有),上拉菜單(Action Sheets,iOS獨(dú)有),簡易彈框(Simple Dialogs,iOS獨(dú)有),活動視圖(Activity Views,iOS獨(dú)有),底板(Bottom Sheets,MD獨(dú)有),提示框(Toasts)。既然各個控件都出過場了,是時候讓它們合個體了!!
模態(tài)
觀察上表,左邊iOS這一欄,從警告框到活動視圖,它們構(gòu)成了一個聽起來很高大上的詞匯——模態(tài)(Modal,不是Model)。iOS設(shè)計規(guī)范對模態(tài)的定義是這樣神兒的:模態(tài)讓用戶聚焦到某一個任務(wù)、消息或者視圖上而不能做別的事情,直到用戶完成了當(dāng)前的任務(wù)。比如警告框,用戶必須必須選擇警告框里的一個選項,警告框才會消失,否則用戶什么也做不了。這個警告框,就創(chuàng)造了“模態(tài)”的體驗。
△ 模態(tài)示例1——警告框
△ 模態(tài)示例2——模態(tài)視圖。
關(guān)于如何使用模態(tài),蘋果有以下幾點建議:
1. 盡量少使用。因為一般來說,人們使用應(yīng)用的時候不是線性的,不是先做A再做B這樣,是想到啥做啥。而模態(tài)是線性的,比較強(qiáng)制。蘋果建議,只在某個任務(wù)特別重要,必須引起用戶的注意、或者某個任務(wù)必須被完成才能繼續(xù)使用應(yīng)用、或者需要應(yīng)用需要保存數(shù)據(jù)時,才使用模態(tài)這種設(shè)計。
2. 使用模態(tài)時需要提供一個清楚明白的退出模態(tài)的通道。需保證用戶總能知道他們在一個模態(tài)中操作后的結(jié)果。
3. 保持模態(tài)里的任務(wù)簡單、簡短、單一。如果要在模態(tài)視圖中創(chuàng)建帶有多層級關(guān)系的任務(wù),一定要慎重!因為用戶很容易忘記它們操作的來龍去脈。
4. 只在展示很重要的提示信息時,才考慮使用警告框。最理想的情況是,警告框可以讓用戶采取行動。警告框比較打擾用戶,所以有必要讓用戶覺得這種打擾是值得的。
5. 不要在一個彈出框上面使用模態(tài)視圖。彈出框之上唯一可以出現(xiàn)的,是警告框(警告框權(quán)限真的很大?。。┤绻且趶棾隹蛏厦嬲故疽粋€模態(tài)視圖,那么請先讓彈出框關(guān)閉,再展現(xiàn)模態(tài)視圖。
在Material Design(簡稱為MD,下同)中,沒有與模態(tài)相對應(yīng)的概念。但其實,對話框和底板(除了固定底板),構(gòu)成的也是模態(tài)的體驗。
控件對比總結(jié)
不知不覺中,對比了這么多控件。下面我們來總結(jié)一下各個控件的特點,方便各位更好的理解這些控件。
警告框
△ 左:iOS警告框; 右:MD警告框
左圖展示了iOS中警告框的幾種形式,右圖展示了MD中警告框的包含元素,其中標(biāo)題不是必須的。對于警告框,蘋果規(guī)范和MD都建議盡量少使用,必須是告知很重要的信息才出現(xiàn)。另外,對于警告框的按鈕,應(yīng)盡量告知用戶操作的結(jié)果,而盡量避免使用“是/否”這樣的文案。
彈出框 & 簡易菜單
△ 左:iOS彈出框; 中、右:MD簡易菜單
對于iOS的彈出框,原本是針對iPad這樣的大屏設(shè)備設(shè)置的控件,近兩年由于手機(jī)屏幕越來越大,也開始應(yīng)用于手機(jī),需要注意iOS的彈出框是自帶箭頭的,箭頭指向入口。MD的簡易菜單,需要注意菜單沒有箭頭,并且菜單是壓住入口的,這一點經(jīng)常被用錯。
上拉菜單 & 簡易彈框
△ 左:iOS上拉菜單; 右:MD簡易彈框
上拉菜單和簡易彈框,都是用于提供一些列選項的控件。不同的是,上拉菜單必須包含“取消”按鈕;上拉菜單可用于毀滅性操作(比如“刪除”)等的二次確認(rèn)。而簡易彈框沒有“取消”按鈕,在選項中可加入頭像、icon等元素,另外還有如上圖中的“添加聯(lián)系人”這樣的操作按鈕。
上拉菜單 & 活動視圖 & 模態(tài)底板
△ 左:上拉菜單; 中:活動視圖; 右:模態(tài)底板
細(xì)心的朋友可能已經(jīng)發(fā)現(xiàn)了,這里又出現(xiàn)了上拉菜單。事實上,這里要跟大家總結(jié)一下,上面提到的彈出框、上拉菜單、活動視圖、簡易彈框、簡易菜單、模態(tài)底板,功能上其實非常相近,都是提供當(dāng)前環(huán)境下的一系列選項。區(qū)別是展現(xiàn)形式的不同,還有個別控件有其獨(dú)特的功能點。在MD中,有這樣一句介紹:Modal bottom sheets are alternatives to menus, or simple dialogs, and can display deep-linked content from another app(模態(tài)底板與簡易彈框、簡易菜單可以互相替換使用,唯一的區(qū)別就是模態(tài)底板中可以承載深層鏈接)。鐺鐺,模態(tài)底板把這一串控件都串起來了。
確認(rèn)彈框 & 全屏彈框 & 模態(tài)視圖
△ 左:MD確認(rèn)彈框; 中:全屏彈框; 右:模態(tài)視圖
確認(rèn)彈框用于確定一個選項。全屏彈框和模態(tài)視圖,可用于較為復(fù)雜的任務(wù),它們可以調(diào)起別的控件。
另外,還有工具欄(下一篇會介紹)、模態(tài)底板和提示框,就不一一列舉了。