#情報ボタンは、アプリの設定情報を表示します。場合によっては、ビューを反転させた後、現在のビューの背面に表示されます。つのスタイルがあります。アプリのデザインに合ったスタイルを選び、画面上で見失わないようにしてください。#ユーザーは連絡先追加ボタンをタップして、既存の連絡先のリストを参照し、テキストフィールドやその他のビューに挿入する連絡先を選択できます。ボタンをタップすると、連絡先のリストから受信者を選択できます。連絡先追加ボタンに加えて、キーボード入力を可能にする。「連絡先の追加」ボタンは、連絡先情報を入力するための代替手段を提供するものです。既存の連絡先を追加するためのショートカットとして提供するのは問題ありませんが、キーボードでも連絡先情報を入力できるようにしましょう。ボタンタイプ「UIButtonTypeContactAdd」を参照してください。#カラーウェルをタップすると、システムに用意されたカラーピッカーが表示されます。このカラーピッカーを使って、テキスト、図形、マーキングツールなどの色を選択することができます。値を選択したりすることができます。スポイトボタンをタップしたり、ルーペを使って画面上の任意の場所に表示されている色を抽出したりして色を選択することもできます。システムが提供するカラーピッカーを使用して色を選択することをお勧めします。内蔵のカラーピッカーを使用すると、一貫したユーザーエクスペリエンスが得られるだけでなく、カラーセットを保存してどのアプリケーションからでもアクセスできるようになります。ユーザーに慣れ親しんだ操作感を提供することができます。以降では、コンテクストメニューを使うことで、インターフェースを煩雑にすることなく、画面上のアイテムに関連する追加機能にアクセスできるようになります。つの重要な違いがあります。サポートするデバイスでのみ利用できます。コマンドを表示するために上方向にスワイプする必要があります。コンテキストメニューをよりすばやく表示できます)。コンテキストメニューを開くと、項目のプレビューが表示され、その項目に対応するコマンドが一覧表示されます。ユーザーは、コマンドを選択したり、アイテムを別のエリア、ウィンドウ、アプリにドラッグしたりすることができます。コンテキストメニューを一貫して採用する。ある場所ではアイテムにコンテキストメニューを提供し、別の場所では提供しない場合、人々はどこでその機能を使用できるかわからず、アプリに問題があると思われる可能性があります。アイテムに適用される最も一般的に使用されるコマンドのみを含めるようにします。メッセージのコンテキストメニューに、返信やメッセージの移動のコマンドを含めることは意味がありますが、フォーマットやメールボックスのコマンドを含めることは意味がありません。あまりにも多くのコマンドを列挙すると、人々を圧倒してしまいます。コンテキストメニューの各コマンドには、グリフを付けます。グリフはコマンドの意味を強調し、その機能を即座に理解するのに役立ちます。シンボルを使用すると、コマンドを表す既存のシンボルを選択したり、関連するシンボルを編集してカスタムグリフを作成したりすることができます。コンテキストメニューにサブメニューが含まれている場合は、追加コマンドの存在を示すシステム提供のシェブロン記号が自動的に表示されるので、そのためのグリフは必要ありません。サブメニューを使って複雑さを管理する。サブメニューとは、論理的に関連したコマンドのセカンドメニューを表示するコンテキストメニューアイテムのことです。サブメニューには、その内容を説明する直感的なタイトルを付けることで、サブメニューのコマンドを明らかにすることなく予測できるようになります。簡潔で行動に即したタイトルをつけることで、現在の状況では必要のないサブメニューをスキップすることができます。サブメニューはひとつのレベルにとどめる。以上になると、エクスペリエンスが複雑になり、ユーザーがナビゲートするのが難しくなります。使用頻度の高いアイテムをメニューの一番上に配置する。コンテキストメニューを開くとき、人はそのメニューの一番上の領域に焦点を当てます。使うアイテムをメニューの一番上に配置することで、目的のアイテムを見つけやすくなります。セパレーターを使って関連するメニュー項目をグループ化する。視覚的なグループ分けをすることで、メニューをより早く見てもらうことができます。アイテムの編集に関連するアクションをグループ化するためのセパレーターと、アイテムの共有に関連するアクションをグループ化するためのセパレーターを使用することができます。以上のグループは必要ありません。同じアイテムにコンテキストメニューと編集メニューを用意することは避けてください。同じアイテムで両方の機能が有効になっていると、ユーザーが混乱し、システムが意図を検出するのが難しくなります。詳しい説明は、「編集メニュー」を参照してください。アイテムのプレビューを開くアクションボタンを用意しないでください。人々はプレビューしているアイテムをタップして開くことができるので、通常、明示的な「開く」ボタンを提供する必要はありません。#テキストフィールド、テキストビュー、ウェブビュー、イメージビューでは、要素をタッチ&ホールドしたり、ダブルタップしたりすることで、コンテンツを選択したり、コピーやペーストなどの編集オプションを表示したりすることができます。現在のコンテキストに適したコマンドを表示します。各コマンドが表示されますが、いずれもオプションで無効にすることができます。選択を必要とするオプションは表示されません。同様に、すでに何かが選択されている場合は、メニューに「選択」オプションを表示しないようにします。必要に応じて、編集オプションの配置を調整します。デフォルトでは、メニューは利用可能なスペースに応じて、挿入ポイントや選択範囲の上または下に配置され、関連するコンテンツへのポインタが含まれています。メニューの形状は変更できませんが、その位置は設定可能なので、重要なコンテンツやインターフェイスの一部を隠さないようにすることができます。エディットメニューと同じ機能を持つコントロールは実装しないでください。操作を開始する方法が複数あると、ユーザーエクスペリエンスに一貫性がなく、混乱の原因になります。コンテンツをコピーするためにメニューを使用する場合は、コピーボタンを実装しないでください。潜在的に有用な非編集可能テキストを選択してコピーできるようにする。メールやメモ、ウェブ検索に、画像ラベルやソーシャルメディアのステータスなどの静的なコンテンツを追加したい場合がよくあります。ボタンに編集オプションを追加しないでください。これを行うと、オプションを表示しようとした人が、代わりにボタンを作動させてしまいます。編集操作を元に戻せるようにする。メニューでは、操作を行う前に確認を取る必要がありません。操作を実行した後に誰かが気を変える可能性があるので、必ずアンドゥとリドゥのサポートを実装してください。便利なカスタムコマンドで編集の選択肢を広げる。アプリ固有のコマンドを追加で提供することで、価値を高めることができます。標準コマンドと同様に、カスタムコマンドは選択されたテキストやオブジェクトを操作する必要があります。システムが提供するコマンドの後にカスタムコマンドを表示します。知られていて頻繁に使用されているシステム提供のコマンドと、カスタムコマンドを一緒に表示しないでください。カスタムコマンドの数は最小限にしてください。選択肢が多すぎて人々を圧倒しないようにします。カスタムコマンドの名前は短くしてください。コマンド名は、実行する動作を簡潔に表す動詞または短い動詞句にしてください。文字以下の前置詞を除くすべての単語を大文字にしてください。#ラベルは、画面上のインターフェース要素を説明したり、短いメッセージを伝えるものです。人間はラベルを編集することはできませんが、ラベルの内容をコピーすることはできます。ラベルには、任意の量の静的なテキストを表示できますが、短くすることをお勧めします。ラベルを読みやすくする。ラベルには、プレーンテキストとスタイル付きテキストがあります。ラベルのスタイルを調整したり、カスタムフォントを使用したりする場合は、読みやすさを犠牲にしないように注意してください。ユーザーがデバイス上でテキストサイズを変更しても、ラベルがきれいに見えるように、ダイナミックタイプを採用することをお勧めします。詳しくはダイナミックタイプをご覧ください。太字などのアクセシビリティオプションを有効にしてラベルをテストする必要があります。詳しくは「アクセシビリティ」をご覧ください。テキストについては、「文字列プログラミングガイド」を参照してください。スタイル付きテキストの作成については、「属性付き文字列プログラミングガイド」を参照してください。#ページコントロールは、フラットリスト内の各ページを表すインジケーターイメージの列を表示します。ページコントロールは、階層化されたページや非線形配列のページを視覚化したり、ナビゲートしたりするのには役立ちません。ページコントロールは、任意の数のページを扱うことができるので、ユーザーがカスタムリストを作成する場合に特に役立ちます。ページコントロールでは、インジケータの外観を調整して、リストに関する詳細な情報を提供することができる。コントロールは、現在のページのインジケータをハイライトして、リスト内でのページの相対的な位置を推測できるようにする。インジケータの数がスペースに収まらない場合、コントロールは両側のインジケータを縮小して、より多くのページが利用可能であることを示唆することができる。ページコントロールの操作は、タップまたはスクラブで行います(スクラブは、コントロールをタッチして左右にドラッグします)。ポインタを使って特定のインジケータを指定することもできますが、現在のページインジケータの先頭または末尾をタップすると、次のページまたは前のページが表示されます。コントロールの前縁または後縁を越えてスクラブすると、最初のページや最後のページに素早く到達できます。タップは個別のインタラクションであるのに対し、スクラブは連続的なインタラクションです。長いリストの場合は、ページコントロールに加えてリストビューを提供することを検討してください。ページのリストを表示するには、通常、スワイプして次のページまたは前のページを表示しますが、このジェスチャーは、リストが長くなると疲れることがあります。ページコントロールをスクラブすることは、各ページをスワイプするよりも速くて簡単ですが、人々はそれがオプションであることに気づかないかもしれません。リスト表示にすることで、目的のページを見つけるための別の方法を提供し、リストの順序を変更することもできます。ページコントロールでは、タップしたときとスクラブしたときの視覚的なフィードバックが異なります。タップして次のページや前のページを表示するときには、ページをスワイプしたときに見られるページスクロールのアニメーションが使われます。スクラブすると、ページ遷移のアニメーションを使わずに瞬時に新しいページが表示されます。スクラビング中にページ遷移をアニメーション化しないでください。スクロールアニメーションをすべての遷移に使用すると、アプリが遅延したり、視覚的なフラッシュが発生したりします。スクロールのアニメーション遷移は、タップ時にのみ使用してください。ページコントロールには、インジケータの視覚的なコントラストを提供する半透明の四角い丸い背景を含めることができます。背景のスタイルは、次のいずれかを選択できます。コントロールが操作されたときのみ背景を表示します。主要なナビゲーション要素でない場合に使用します。常に背景を表示します。コントロールが画面内の主要なナビゲーショナルコントロールである場合にのみ、このスタイルを使用します。このスタイルは、リスト内の現在のページの位置を表示するだけで、スクラブ中に視覚的なフィードバックを提供する必要がない場合に使用します。最小の背景スタイルを使用する場合は、スクラブをサポートしません。最小限のスタイルでは、スクラブ中の視覚的なフィードバックが提供されません。アプリ内のページのリストをスクラブする場合は、自動または著名な背景スタイルを使用してください。ページコントロールを画面の下に配置する。ページコントロールがどこにあるかを常に把握できるようにするには、水平方向に中央に配置し、画面の下部付近に配置します。#デフォルトでは、ページコントロールはシステムが提供するドットグリフをすべてのインジケータに使用しますが、特定のページを識別できるように独自の画像を表示することもできます。シンボルを使用して、現在の場所のページを識別しています。アプリを改良する場合は、カスタム画像を提供してすべてのインジケータのデフォルト画像として使用したり、特定のページに異なる画像を提供することもできます。setIndicatorImage(_:forPage:)を参照してください。カスタムインジケータの画像は、シンプルでわかりやすいものにしてください。複雑な形状は避け、ネガティブスペース、テキスト、内側の線などは入れないでください。これらの詳細はグリフを濁らせ、非常に小さいサイズでは判読できなくなります。記号を使用するか、独自のグリフをデザインしてください(ガイドは「グリフ」を参照)。デフォルトのインジケータ画像をカスタマイズするのは、ページコントロールの全体的な意味を高める場合のみにしてください。シンボルを使用することができます。以上の異なるインジケータ画像を使用することは避けてください。現在地ページなど)が含まれている場合、そのページに固有のインジケータ画像を与えることで、そのページを見つけやすくすることができます。これに対して、いくつかの重要なページを示すために複数のユニークなイメージを使用するページコントロールは、それぞれのイメージの意味を覚えなければならないため、使いにくいものです。種類以上のインジケータ画像を表示するページコントロールは、それぞれの画像が明確であっても、ゴチャゴチャした無秩序な印象を与えがちです。インジケータ画像の着色は避けてください。カスタムカラーは、カレントページのインジケータを区別し、ページコントロールを画面上で見えるようにするためのコントラストを低下させる可能性があります。ページコントロールが使いやすく、さまざまな状況で見栄えがするようにするために、システムが自動的にインジケータを着色するようにしてください。複数表示し、そこから選択することができます。以降では、日付ピッカーは、カレンダー表示で日を選択したり、テンキーを使って日付や時刻を入力したりするなど、値を選択するための追加の方法をサポートしています(詳細は「日付ピッカー」を参照してください)。どちらのタイプのピッカーも、単一または複数の値を選択することで、情報の入力を容易にします。中程度の長さのリストを表示する場合は、ピッカーの使用を検討してください。短い選択肢のリストを表示する必要がある場合は、ピッカーではなくプルダウンメニューの使用を検討してください。ピッカーを使うと、多くの項目を素早くスクロールできますが、短い項目のリストでは視覚的な重みが大きくなりすぎてしまいます。非常に多くの項目を表示する必要がある場合は、リストやテーブルの使用を検討してください。リストやテーブルは高さを調整することができ、テーブルにはインデックスを含めることができるため、リストの一部を素早く表示することができます。詳しくは、「テーブル」をご覧ください。予測可能で論理的な順序の値を使用する。スクロール可能なリストが静止していると、ピッカーの多くの値が隠れてしまうことがあります。アルファベット順の国別リストのように、隠された値が何であるかを予測できると、素早く項目を移動することができます。ピッカーを表示するために画面を切り替えるのは避けましょう。ピッカーは、編集中のフィールドの下や近くに表示されると効果的です。ピッカーは通常、画面の下部またはポップオーバーで表示されます。#日付ピッカーは、タッチ、キーボード、ポインティングデバイスを使って、特定の日付、時刻、またはその両方を選択するための効率的なインターフェースです。日付ピッカーは、次のいずれかのスタイルで表示できます。リストやテーブルの行のような小さなスペースに収まる編集可能なフィールドで、展開すると編集ビューが表示されます。モーダルなコンテキストで編集ビューを表示するために拡張されるラベル。スクロールする伝統的なホイールのセットまた、自動スタイルを選択すると、システムが現在のプラットフォームと日付選択モードを使用して適切な表示スタイルを決定します。つのモードがあり、それぞれが異なる選択可能な値を表示します。月、日、年を表示します。