Drag and Drop(ドラッグアンドドロップ)


ユーザは 1 本の指で、選択した写真、テキスト、またはその他のコンテンツをある場所から別の場所にドラッグし、指を離しててドロップすることで、コンテンツを移動または複製できます。



選択したコンテンツを長押しすると、上昇してユーザの指にくっついているように見えます。コンテンツがドラッグされると、アニメーションと視覚的な手がかりが可能な行き先を識別します。また、システムは、ドロップできない場合、またはコンテンツを移動するのではなく複製する結果になることを示すバッジも表示します。開発者向けガイダンスについては、UIKit (UIKit) の ドラッグアンドドロップ (Drag and Drop) を参照してください。


送信元と宛先


ドラッグアンドドロップでは、選択したコンテンツを資料の出所から宛先に移動します。これらの場所は、テキストビューのように同じコンテナ内に配置することも、分割ビューのそれぞれ反対側のテキストビューのように異なるコンテナ内に配置することもできます。たとえば、メモでは、ユーザは選択したテキストを同じメモ内の新しい場所にドラッグできます。リマインダでは、ユーザは個々のリマインダを 1 つのリストからドラッグして、別のリストにドロップできます。



iPad では、送信元と宛先の場所を異なるアプリにすることもできるため、Safari 内の Web ページから Mail の新しいメッセージに写真をドラッグするなどのアプリ間の相互作用が可能になります。コンテンツをドラッグしている間、ユーザは マルチタスク、ホームスクリーンの終了、またはスクリーンの下から上にスワイプして Dock を表示することで別のアプリにアクセスできます。


注意

アプリ同士でコンテンツをドラッグアンドドロップすると、コンテンツの移動ではなく、常にコピーが発生します。


ドラッグアンドドロップのサポート


ドラッグアンドドロップは、ユーザがシステム全体に広く実装されることを期待する、効率的で直感的な機能です。あなたのアプリにテキスト、写真、ビデオ、オーディオ、または人々が移動、コピー、または挿入したいその他のコンテンツが含まれている、または生成されている場合、あなたのアプリはドラッグアンドドロップをサポートすべきです。


選択および編集可能なすべてのコンテンツでドラッグアンドドロップを使用できるようにします。 選択可能なコンテンツはドラッグ可能であるべきで、編集可能なコンテンツはドロップされたコンテンツを受け入れるべきです。また、あなたのアプリがこれらの領域でのコピーとペーストをサポートしていることを確認してください。


該当する場合、コンテンツをコントロール上にドロップできるようにします。 一般に、ドロップされたコンテンツを受け入れるために、テキストフィールドなどのデータ入力または選択を可能にするコントロールを構成します。


可能な限り、標準のテキストビューとテキストフィールドを使用してください。 これらのシステム提供の要素には、ドラッグアンドドロップのサポートが組み込まれています。関連するガイダンスについては、テキストフィールドテキストビュー を参照してください。開発者向けガイダンスについては、UITextField (UITextField) および UITextView (UITextView) を参照してください。



効率を高めるには、複数アイテムのドラッグアンドドロップのサポートを検討してください。 多くのアプリでは、ユーザは 1 本の指で 1 つのアイテムをドラッグでき、ドラッグ中に別の指でタップして追加のアイテムを選択できます。選択したアイテムは一緒に移動し、元のアイテムをドラッグしている指の下に積み重ねて表示されます。次に、ユーザはアイテムをグループとしてドラッグし、目的の宛先にドロップします。たとえば、ホームのスクリーンでは、複数のアプリアイコンを選択して、一度にフォルダ内にドラッグできます。写真などの一部のアプリでは、ドラッグする前に複数のアイテムを選択できる選択モードを提供します。



あなたのアプリ内でコンテンツをドラッグアンドドロップすると、移動またはコピーが発生するかどうかを判断します。 一般に、移動元と移動先のコンテナが同じ場合 (ドキュメント内でテキストをドラッグする)、コピーは異なる場合 (ドキュメント同士またはアプリ同士でドラッグする) に意味があります。ただし、これが常に当てはまるとは限りません。とりわけ、ドラッグアンドドロップは直感的に動作する必要があります。リマインダーでは、リスト同士でリマインダーをドラッグすると、コピーするのではなく移動しますが、これは、人々が期待していることだからです。アプリ同士でコンテンツをドラッグアンドドロップすると、常にコピーが作成されます。


可能な限り、ドラッグアンドドロップを Undo(元に戻す) できるようにします。 一般に、ユーザが誤って間違った宛先にコンテンツをドロップした場合、ユーザは [Undo(元に戻す)] を使用してアプリを以前の状態に戻すことができるべきです。つまり、ドロップされたコンテンツを削除し、アプリの他の場所から移動した場合は、元の場所に復元する必要があります。


バネ状にロードを有効にすることを検討してください。 バネ状にロードを使用すると、ユーザはボタンやセグメント化されたコントロールなどの特定のコントロールをアクティブ化して、選択したコンテンツをそれらの上にドラッグし、コンテンツをドロップせずに一時停止することで、それができます。たとえば、メールでは、選択したメッセージをナビゲーションバーの [Back(戻る)] ボタンにドラッグして、メールボックス階層内の他の場所に移動できます。コントロールをアクティブにする唯一の方法としてスプリングローディングを使用しないでください。発見できる装飾としてそれを使用してください。ほとんどの場合、バネ状ロードのコントロールもタップジェスチャに応答する必要があります。開発者向けガイダンスについては、UISpringLoadedInteraction (UISpringLoadedInteraction) を参照してください。


ドラッグされたコンテンツの提供


必要に応じて、ドラッグした項目のプレビューをカスタマイズします。 一般に、ユーザの指の下に表示されるプレビューは、ドラッグされているコンテンツの半透明の表現であるべきです。この外観はコンテキストを提供し、ドラッグが進行中であることを示し、ユーザがドラッグしたコンテンツの下にある宛先を確認できるようにします。


可能な限り、正確さの高いものから低いものの順に、ドラッグしたデータの複数の表現を提供します。 たとえば、線画を提供する場合、あなたのアプリは PDF ベクトル表現、透明性があり損失のない PNG 画像、透明性がなく損失の多い JPEG 画像の順に提供できます。このようにして、宛先はインポートできる最高品質の表現を選択できます。


該当する場合は、カスタムオブジェクトのネイティブバージョンを最も豊富な形式のデータとして提示します。 たとえば、チャートをドラッグできるアプリでは、最初にネイティブチャートオブジェクトを表示する必要があります。次に、チャートオブジェクトをサポートしないアプリに対して、チャートのイメージバージョンなどの代替手段を提供すべきです。


アプリのコンテンツの転送に時間がかかる場合やリソースを大量に消費する場合は、ファイルプロバイダ拡張機能を実装してください。 ファイルプロバイダ拡張機能は、転送プロセスを管理し、アプリが実行されなくなった場合でも、転送プロセスが確実に完了するようにします。ユーザがコンテンツをドロップするまで、転送プロセスは開始されないことに注意してください。開発者向けガイダンスについては、NSFileProviderExtension (NSFileProviderExtension) を参照してください。


あなたのアプリのコンテンツを転送する時間がかかる場合は、進行情報を提供します。 コンテンツをダウンロードしなければならない場合、または大きなファイルのコピーに時間がかかる場合は、進行状況の情報を提供します。少なくとも、コンテンツの合計サイズを提供して、宛先が残り時間を計算し、適切な進行状況インジケータを表示できるようにします。開発者向けガイダンスについては、NSProgress (NSProgress) を参照してください。


ドロップされたコンテンツの受け入れ


視覚的な手がかりを使用して、潜在的な目的地を特定し、コンテンツをドロップした場合の効果をプレビューします。 ハイライト、挿入ポイントインジケータ、およびアニメーションはすべて、宛先を特定できるための優れた方法です。ビューが微妙に点滅して、コンテンツがその上にドラッグされると色が変わります。また、段落が離れてドラッグされたイメージ用のスペースを作ります。スクリーン上に複数の宛先が表示されている場合は、一度に一つずつ特定します。ソースコンテナと宛先コンテナが同じの場合、コンテンツがソースから完全に離れてドラッグされてから再度入らない限り、強調表示は不要です。コンテンツがドロップされたとき、または宛先の上に配置されなくなったときは、強調表示が削除されていることを確認してください。


必要に応じて、宛先のコンテンツを自動的にスクロールします。 コンテンツが宛先の境界の外にドラッグされた場合、あなたのアプリは、宛先のコンテンツをスクロールするか、ユーザがまったく別の宛先にドラッグし続けることを許可するかを決定する必要があります。アプリでユーザがドラッグを続行できる場合は、ドラッグした項目がその上に配置されたときに自動スクロールが発生する領域を定義することを検討してください。たとえば、メールの長い下書きメッセージは、コンテンツが本文領域の上部または下部にドラッグされると自動的にスクロールします。標準のテキストビューとテキストフィールドは、この動作を自動的に採用します。


ドロップされたコンテンツでは可能な限り豊富な表現を抽出して表示します。 たとえば、あなたのアプリにチャートの複数の表現が提供されているとします。アプリがチャートをサポートしている場合、ネイティブのチャートオブジェクトを抽出して表示できます。アプリがチャートをサポートしていない場合は、代わりにチャートのイメージバージョンを抽出して表示できます。


該当する場合は、ドロップされたコンテンツの関連部分のみを抽出します。 たとえば、ユーザが [Contacts(連絡先)] を連絡先から ]Mail(メール)] メッセージの受信者フィールドにドラッグした場合、連絡先のアドレス情報ではなく、名前と電子メールアドレスのみが使用されます。


コンテンツがドロップされた後、テーブルビューとコレクションビューにプレースホルダを表示します。 プレースホルダは、コンテンツの転送が完了すると、コンテンツがどこにあるかを一時的に示します。


ドロップされたコンテンツの転送に時間がかかる場合に進行状況を表示します。 デフォルトでは、アプリ同士で時間のかかる転送が発生すると、システムはアプリモーダルの警告を表示します。テーブルビューまたはコレクションビュー内のプレースホルダに進行状況インジケータを表示するなど、進行状況の表示方法をカスタマイズして、ユーザがあなたのアプリの使用をブロックされないようにしてください。ユーザがコンテンツをドロップするまで、転送プロセスは開始しないことに注意してください。


ドロップされたコンテンツがプロセスを開始したときにフィードバックを提供します。 ユーザがタスクを開始するコントロール上にコンテンツをドロップした場合 (たとえば、共有サイトへのビデオのアップロード)、タスクが開始されたことを示し、ユーザに進行状況を通知し続けます。


ドロップが失敗したときにユーザーに通知します。 ファイル転送が中断されたなどの理由でドロップされたコンテンツを挿入できない場合は、ドロップが失敗したことをユーザに通知してください。


ドロップされたテキストに適切なスタイルを適用します。 ソースと宛先が同じスタイルのテキスト属性をサポートしている場合、ドロップされたテキストは元のフォント、書体、サイズ、およびその他の属性を維持する必要があります。それ以外の場合、ドロップされたテキストは宛先のスタイルを採用します。


ユーザがドラッグアンドドロップをすぐに undo(取り消し) できない場合に手を引くための微妙で直感的な方法を提供してください。 たとえば、共有アプリは、ドロップされたコンテンツを投稿する前に中間共有シートを提示します。この共有シートは、キャンセルボタンを提供しながら、ステータスメッセージなどの追加コンテンツを提供する方法を提供します。写真を共有写真ストリームにドラッグすると、写真はこの動作を示します。








前:データ入力 次:フィードバック




目次

Xcode の新機能



iOS

テーマ

インターフェースの本質

アプリの構造

起動

搭載機能

ロード

モダリティ

ナビゲーション

ユーザデータへのアクセス

設定


ユーザとの対話

3D タッチ

アップルペンシルと落書き

オーディオ

認証

データ入力

ドラッグアンドドロップ

フィードバック

ファイル処理

ゲームコントローラ

ジェスチャ

触覚

キーボード

近距離通信

ポインタ (iPadOS)

空間的対話

取り消しとやり直し


システムの機能

拡張現実

ホームスクリーンのアクション

マルチタスクと複数のウィンドウ

通知

印刷

クイックルック(検索)

評価とレビュー

スクリーンショット

TV プロバイダー


ビジュアルデザイン

適応性とレイアウト

アニメーション

ブランド化

ダークモード

起動スクリーン

材料

用語

印刷

ビデオ


アイコンと画像

画像のサイズと解像度

アプリのアイコン

システムアイコン


バー

ナビゲーションバー

検索バー

サイドバー

ステータスバー

タブバー

ツールバー


ビュー

アクションシート

アクティビティビュー

アラート

コレクション

画像ビュー

ページ

ポップオーバー

スクロールビュー

シート

分割ビュー

テーブル (表)

テキストビュー

Web ビュー


コントロール

ボタン

色の源

コンテキストメニュー

編集メニュー

ラベル

ページコントロール

ピッカー

進行状況インジケータ

内容コントロールの更新

セグメント化されたコントロール

スライダ

ステッパー

スイッチ

テキストフィールド


拡張機能

カスタムキーボード

ファイルプロバイダ

メッセージ

写真編集

共有とアクション





macOS


tvOS


watchOS


Technologies

アクセシビリティ

序文

ベストプラクティス

ユーザとの対話

ナビゲーション

テキストのサイズと太さ

色とコントラスト

外観の効果と動き

コンテンツ


AirPlay

メディア再生

アイコン

社説


アプリクリップ

序文

ユーザ体験

アプリクリップカード

アプリのクリップコード

印刷ガイドライン

法的要件


Apple Pay(アップルペイ)

序文

Apple Pay の提供

チェックアウトと支払い

エラー処理

サブスクリプションと寄付

ボタンとマーク

社説


拡張現実

ホームスクリーンのアクション

マルチタスクと複数のウィンドウ

通知

印刷

クイックルック(検索)

評価とレビュー

スクリーンショット

TV プロバイダー


CareKit

序文

データとプライバシー

ビュー

ユーザー体験

シンボルと商標化


CarPlay

序文

オーディオアプリ

自動車メーカーのアプリ

伝達および VoIP アプリ


アーキテクチャ

バッジ付け

エラー処理

ロード

ナビゲーション

テスト


対話

オーディオ

車のデータ

iPhone

ノブとコントロール

タッチスクリーン

Voice (Siri)


視覚的デザイン

アニメーション

商標化

レイアウト

タイポグラフィ(印刷)


アイコンと画像

画像のサイズと解像度

アプリのアイコン

カスタムアイコン

システムアイコン


システム要素

アクションシート

活動指標

アラート

ボタン

コレクション

ラベル

ナビゲーションバー

スクロールビュー

タブバー

テキストビュー

Web ビュー


CareKit

序文

データとプライバシー

ビュー

ユーザ体験

シンボルと商標化


ゲームセンター

序文

アクセス・ポイント

ダッシュボード

実績

順位表

マルチプレイヤー

カスタムダッシュボードリンク


象形文字

HealthKit

HomeKit

序文

用語とレイアウト

設定

Siri の作用

カスタム機能

アイコン

社説


iCloud

アプリ内購入

序文

自動更新可能なサブスクリプト


inclusion(含有)

ライブ写真

Mac Catalyst

序文

アプリの構造

ユーザとの対話

視覚的デザイン

Mac 慣用句


マシン学習

序文

マシン学習の役割


入力

明示的なフィードバック

暗黙のフィードバック

較正

訂正


出力

間違い

複数のオプション

自信

帰属

制限事項


地図(Maps)

アプリとウェブサイトの地図

Apple Watch の地図

屋内の地図


ResearchKit

序文


右から左へ

序文

テキストと文字

コントロール

画像と象形文字


SharePlay

Apple でサインイン

序文

データ管理

ボタン


Siri

序文

システムインテント

カスタムの注視

ショートカットと提案

編集ガイドライン


ソーシャルメディア

SF Symbols

Wallet(財布)

序文

許可証のデザイン


小道具

序文

コンテンツ

編集と対話

デザイン



Human Interface Guidelines


概要


リソース


ビデオ


新規事項



ニュース

見つける

デザイン

開発

配信

サポート

アカウント
(セキュリティの面で、リンクを提供できませんでした。)













トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ