拖拽
使用單個手指,用戶可以通過將內容從一個位置拖動到另一個位置,來移動或復制所選擇照片、文本或其他內容,然后抬起手指將其放下。
觸摸并按住所選內容使其看起來像是用戶手指下的玩物。隨著內容被拖動,動效和視覺提示向用戶暗示可能的目的地。系統還會顯示一個不能丟棄的標記,否則會復制內容,而不是移動內容。
來源和目標
拖拽能將所選內容從源位置移動到目標位置。這些位置可以在同一個視圖中,如文本視圖;或者在不同的視圖中,如分欄視圖中的文本視圖。例如,在筆記中,用戶可以將選定的文本拖動到同一筆記中的新位置。在提醒中,用戶可以將單個提醒從一個列表中拖放到另一個列表中。
在 iPad 上,來源和目標位置也可以存在于不同的應用程序中,從而實現跨應用程序交互。例如將 Safari 中的網頁照片拖到郵件中。拖動內容時,用戶可以通過多任務訪問另一個應用程序、退回主屏幕,或者從屏幕底部向上滑動以顯示 Dock。
注:在應用程序之間拖拽內容只是復制而并非移動。
支持拖拽
拖拽是一種高效、直觀的功能,用戶期望在整個系統中都能使用。如果應用包含文本、照片、視頻、音頻或其他可能要操作的內容,諸如:復制、插入,應用應該支持拖拽。
可選擇和可編輯的內容即可拖拽
可選擇的內容應該是可拖拽的,可編輯內容應該允許刪減,確保應用支持在這些區域中能復制、粘貼。
如果適用,允許控件上刪減內容
通常允許數據輸入或選擇的控件,如文本字段,可以刪減內容。
盡可能使用標準文本視圖和文本字段
系統內置的可拖拽元素,有關相關指導,請參閱文本視圖和文本視圖。
考慮多項拖拽
在許多應用中,用戶可以用一根手指拖動單個項目。如果需要拖拽多個項目,一根手指按住,用另一個手指點擊選擇多個項目,會將所選項目一起移動,并顯示最初按壓的手指下面。然后,用戶將項目作為組拖曳并將其放在所需的目的地上。例如,主屏幕允許選擇多個應用程序圖標并將其拖動到一個文件夾中。某些應用(如照片)提供選擇模式,可在拖動之前選擇多個項目。
告知用戶在移動還是在復制
通常當源和目標視圖相同(拖動文檔中的文本)時,移動是有意義的;當它們不同(在文檔之間或在應用之間拖動)時,復制是有意義的。但事實并非如此,用戶期待有提示性信息,告知他們在列表之間拖拽會移動而不是復制,并告知他們在應用間拖拽會復制。
如可能,允許撤消拖拽
用戶時常會無意中拖拽錯誤的內容,他們應該可以撤消這次錯誤操作。也就是說,刪除的內容應該被刪掉,如果拖拽錯了會還原。
考慮啟用跳躍加載
通過跳躍加載,用戶所拖拽的內容會暫時處于待命狀態,而不是放棄本次操作。例如在郵件中,所選郵件可以拖動到導航欄的 “后退” 按鈕上,以到達郵箱層次結構中的其他位置。當然,切勿使用跳躍加載作為唯一方法激活控件,而是作為一個有趣的點綴。在大多數情況下,跳躍加載的控件也應該響應點擊手勢。
提供拖拽內容
如果必要,自定義拖拽預覽
一般來說,用戶手指下顯示的預覽應該是拖拽內容半透明表示,并允許用戶查看拖拽內容下的目標。
提供從高質量到低質量的多重表示
例如,當提供行展示時,應用可以按順序提供 PDF 矢量預覽圖,具有透明度的無損PNG圖像,和無透明度的有損JPEG圖像。這樣,目標可以選擇可以導入的最高質量的表示。
將自定義對象的本地版本作為最豐富的數據形式
例如,允許用戶拖拽圖表的應用,應首先顯示本地圖表對象,那么它應該為不支持圖表對象的應用提供類似圖表的替代圖像版本。
非即刻完成請提供進度
如果不能立即完成,如復制大型文件,請提供進度信息,包含內容大小、算剩余時間、進度指標。
接受移入內容
用視覺線索識別潛在目標并預覽效果
突出顯示插入點,用指示器和動效都是識別可能目標的好方法。當內容被拖拽時,可以巧妙??地閃爍視圖并改變顏色,或者將段落移開,為拖動的內容騰出空間。如果屏幕上有多個可能的目的地,一次識別一個。如果來源和目標視圖相同,可以突出顯示就不太必要,除非內容被完全拖出源,然后重新進入,確保在內容移入或不再位于目標上方時突出顯示。
適時自動滾動目標內容
當內容被拖拽到目標邊界之外時,應用可能需要確定是滾動目標內容,還是允許用戶繼續拖拽到完全不同的目標。如果應用允許用戶繼續拖拽,請考慮拖拽的項目位于其上方時,定義自動滾動的區域。例如,當內容被拖拽到主體區域的頂部或底部時,郵件中的草稿消息列表將自動滾動。標準文本視圖和文本字段自動采用此行為。
提取并顯示移入內容多種可能表示
如果應用程序支持圖表,可以提取并顯示本地圖表對象。如果應用不支持圖表,可以提取并顯示圖表的圖像版。
僅提取移入內容的相關信息
例如,用戶將聯系人從列表拖到郵件消息中的收件人字段,只會使用姓名和電子郵件地址,而不是聯系人地址信息。
完成后顯示占位符
占位符在完成移入后,暫時指出內容駐留在哪里。
如果移入內容需要時間,顯示進度
默認情況下,當應用之間發生耗時的傳輸時,系統會顯示應用警報模式。考慮自定顯示進度,例如在表格視圖或集合視圖中占位符的位置顯示進度指示器,在這段時間內用戶不會被阻止使用應用。請注意,在用戶移入內容之前,傳輸不會開始。
移入內容時提供反饋
如果用戶將內容移入到啟動任務的控件上,例如將視頻上傳到共享站點 - 顯示任務已經開始,并向用戶通知進度。
通知用戶移入失敗
移入內容可能由于傳輸中斷而無法完成,通知用戶移入失敗。
文本使用合適樣式
當來源和目標支持相同樣式的文本屬性時,移入的文本應保持原始字體屬性。否則移入的文本應該采用目標風格。
考慮一種巧妙直觀的方式,以便無法立即撤消時選擇退出
例如,將照片拖動到共享照片流中,共享應用可能會在發布移入內容前呈現中間分享表。這份表可以提供額外內容(如狀態消息),同時還提供取消按鈕。