スクロールビュー
スクロールビューを使用すると、人々はコンテンツを水平または垂直に移動して、ビューの境界よりも大きいコンテンツを表示できます。
スクロールビュー自体には外観はありませんが、アクションに関する追加情報を提供する半透明のスクロール バー または インジケータ を表示できます。たとえば、インジケータの位置は、コンテンツの表示部分が最初、中間、または最後に近いかどうかを示します。その高さは、ビュー内のスクロール可能なコンテンツの総量を示唆しています。インジケータが短いほど、スクロールすべきコンテンツが多くなります。
ベストプラクティス
デフォルトのスクロールのジェスチャとキーボードショートカットをサポートします。 人々はシステム全体のスクロール動作に慣れており、どこでも動作することを期待しています。ビューのカスタムスクロールをビルドする場合は、スクロールバーが人々の期待する弾力性のある動作を使用していることを確認してください。
コンテンツがスクロール可能であることを明確にします。 スクロールバーは常に表示されるとは限らないため、コンテンツがビューを超えている場合は、それを明確にすることが役立ちます。たとえば、ビューの端に部分的なコンテンツを表示すると、その方向にさらにコンテンツがあることを示します。ほとんどの人はすぐにビューをスクロールして、追加のコンテンツが利用可能かどうかを確認しようとしますが、注意を引くことは考慮に値します。
同じ向きの別のスクロールビュー内にスクロールビューを配置しないでください。 そうすると、制御が困難で予測不可能なインターフェイスが作成されます。ただし、水平スクロールビューを垂直スクロールビュー内に配置しても問題ありません(またはその逆)。
あなたのコンテンツにとって意味がある場合は、ページごとのスクロールを有効にすることを検討してください。 場合によっては、継続的にスクロールするのではなく、操作ごとに一定量のコンテンツをスクロールすることを好む人がいます。ほとんどのプラットフォームでは、そのような ページ のサイズ(通常はビューの現在の高さまたは幅)を定義し、一度に 1 ページずつスクロールする操作を有効にすることができます。ページごとのスクロール中にコンテキストを維持するために、テキスト行、グリフの行、または画像の一部などのオーバーラップの単位を定義し、その単位をページサイズから差し引くことができます。
開発者向けガイダンスについては、isPagingEnabled を参照してください。
場合によっては、人々が自分の場所を見つけやすくするために、自動的にスクロールします。 ほとんどすべてのスクロールは人々が開始しますが、自動スクロールは、関連するコンテンツが表示されなくなった場合に役立ちます。たとえば、以下のような場合です。
いずれの場合も、コンテンツを必要なだけ自動的にスクロールして、人々がコンテキストを維持できるようにします。たとえば、選択範囲の一部が表示されている場合、選択範囲全体をスクロールして表示する必要はありません。
ズームを有効にする場合は、適切な最大および最小スケール値を設定します。たとえば、1 文字がスクリーンいっぱいになるまでテキストを拡大しても、ほとんどの場合意味がありません。
プラットフォームの考慮事項
iOS、iPad
一般に、1 つのスクリーンにつき 1 つのスクロールビューを表示して下さい。 人々はスクロール時に大きなスワイプジェスチャを行うことが多く、同じスクリーン上の隣接するスクロールビューでの操作を避けるのは難しい場合があります。1 つのスクリーンに 2 つのスクロールビューを配置する必要がある場合は、1 つのジェスチャが両方のビューに影響を与えないように、異なる方向にスクロールできるようにすることを検討してください。たとえば、iPhone がポートレイト向きの場合、Stocks (株) アプリは、水平にスクロールする企業固有の情報の上に垂直にスクロールする株価を表示します。
スクロールビューがページ単位モードの場合は、ページコントロールを表示することを検討してください。 ページコントロール は、使用可能なページ、スクリーン、またはその他のコンテンツの塊の数と、現在表示されているコンテンツを示します。たとえば、Weather (天気) はページコントロールを使用して、人々が保存したた場所間の移動を示します。スクロールビューでページコントロールを表示する場合は、同じ軸のスクロールインジケータを無効にして、冗長なコントロールで人々を混乱させないようにします。
macOS
レイアウト内のスクロール バーを考慮してください。 デフォルトでは、スクロールバーは、スクロールバーを含むビューを人々が操作した場合にのみ表示されますが、一般設定の設定を使用して、スクロールバーを常に表示することができます。一部の入力デバイスではまた、スクロールバーが常に表示されることもあります。必要に応じて、ウィンドウのレイアウトを調整して、重要なインターフェイス要素がスクロールバーの下に表示されないようにします。スクロールバーのトラックの太さは、15 ポイント(レギュラー サイズ)または 11 ポイント(小またはミニサイズ)です。
一時的なスクロールバーが表示されているときは、ウィンドウコンテンツを移動しないようにします。 スクロールバーが表示されるたびに常にコンテンツを移動すると、混乱する可能性があります。
コントロールをスクロールバーと一緒にインラインに配置することは避けてください。 これを行うと、人々がバーを一時的に設定した場合でも、バーが表示される可能性があります。
必要に応じて、パネルでは小さなスクロールバーまたはミニのスクロールバーを使用します。 スペースが狭い場合は、他のウィンドウと共存する必要があるパネルで小さいスクロールバーを使用できます。このようなパネルでは、すべてのコントロールに必ず同じサイズを使用してください。
tvOS
tvOS のビューはスクロールできますが、スクロールバーを持つ別個のオブジェクトとしては扱われません。代わりに、コンテンツがスクリーンのサイズを超えると、システムはインターフェイスを自動的にスクロールして、フォーカスされたアイテムを表示したままにします。
watchOS
アクティブなスクロール中に一時的なスクロールバーとノブが表示されるため、人々は Digital Crown を使用してスクロールできます。インターフェースに複数のページが含まれる場合、WKPageOrientation (WKPageOrientation) を使用して水平方向または垂直方向にスクロールするかどうかを設定できます。
リソース
関連
開発者用文書
UIScrollView — UIKit (UIScrollView)
NSScrollView — AppKit (NSScrollView)
WKPageOrientation — WatchKit (WKPageOrientation)