ScrollingFrameは、カスタマイズ可能なキャンバスとスクロールバーで構成されており、組み込みのスクロールインタラクティビティとスクロールの動作をカスタマイズするさまざまな方法を提供します。ScrollingFrameは、限られたスペースで多くの情報を表示するのに最適で、リストやグリッドレイアウトともうまく機能します。

キャンバス
キャンバスは、ScrollingFrameの主要な領域であり、他のGuiObjectsを含むことができます。スクロール動作は、以下のシナリオで自動的に適応します。
| フレームの設定 | 結果 |
|---|---|
| フレームのCanvasSizeが全体の高さよりも高い場合。具体的には、合計CanvasSize.Yが合計Size.Yを超えます。 | 垂直スクロールが有効になり、垂直スクロールバーが表示されます。 |
| フレームのCanvasSizeが全体の幅よりも広い場合。具体的には、合計CanvasSize.Xが合計Size.Xを超えます。 | 水平スクロールが有効になり、水平スクロールバーが表示されます。 |
| フレームのAutomaticCanvasSizeがYまたはXYに設定されており、その内容(子GuiObjects)の合計高さが合計Size.Yを超えます。 | 垂直スクロールが有効になり、垂直スクロールバーが表示されます。 |
| フレームのAutomaticCanvasSizeがXまたはXYに設定されており、その内容(子GuiObjects)の合計幅が合計Size.Xを超えます。 | 水平スクロールが有効になり、水平スクロールバーが表示されます。 |
CanvasPositionプロパティは、フレーム内のキャンバスの現在の位置オフセットをピクセル単位で反映し、スクロールバーの位置をそれに応じて設定します。このプロパティは、スクロールバーが表示されていない場合は何も機能しないことに注意してください。
インセット
スクロールフレームのCanvasSizeは、VerticalScrollBarInsetおよび/またはHorizontalScrollBarInsetプロパティの影響を受ける場合があります。以下の例の図では、垂直スクロールフレームが100%のキャンバス幅を使用しています。VerticalScrollBarInsetがNone(デフォルト)に設定されている場合、キャンバスはスクロールフレームの全幅に広がり、スクロールバーの下にわずかにコンテンツが隠れます。対照的に、VerticalScrollBarInsetがAlwaysまたはScrollBarに設定されている場合、キャンバスはScrollBarThicknessの量だけインセットされ、キャンバスがスクロールバーと端から端まで接触します。

スクロールバー
フレームのスクロールバーは、現在のキャンバス位置を反映し、自動的なドラッグによるスクロールインタラクティビティを提供します。垂直スクロールバーの場合、VerticalScrollBarPositionプロパティはバーの位置をキャンバスの左または右に切り替えますが、水平スクロールバーはキャンバスの下にのみ配置できます。
スクロールバーの構成は、3つのアセットプロパティで構成されています:
- TopImage — 垂直スクロールバーの上部、または水平スクロールバーの左側に表示されます(水平スクロールバーの場合は90度反時計回りに回転)。
- BottomImage — 垂直スクロールバーの下部、または水平スクロールバーの右側に表示されます(水平スクロールバーの場合は90度反時計回りに回転)。

各画像は、ScrollBarThicknessプロパティに基づいてスケールされ、垂直スクロールバーの幅または水平スクロールバーの高さを変更します。
追加の視覚的変更は、ScrollBarImageColor3およびScrollBarImageTransparencyプロパティを通じて行うことができ、バーの画像アセットの色合いを変更し、それぞれの不透明度を変更します。
クリッピング
デフォルトで、GuiObject コンテナは クリップ そのコンテンツ(子孫の GuiObjects)を ClipsDescendants ブーリアンを通じて行います。子孫がコンテナの境界の外に表示されることを希望する場合は、単に ClipsDescendants を false に設定してください。


重要なことに、StarterGui.ClipsDescendantsSupportsRotation はクリッピングが 回転した 子孫(非ゼロの Rotation)に対して機能するために true でなければなりません。ただし、回転したコンテナによるクリッピング(クリッピングコンテナ自体が回転している)や角が丸くされた場合(UICorner)のクリッピングはサポートされていません。回転したコンテナや丸みを帯びたコンテナでのクリッピングが必要な場合は、CanvasGroup を検討してください。

Rotation = 0

Rotation = 10
弾性
デフォルトでは、ScrollingFramesはタッチ対応デバイスで弾性スクロール動作を示します。つまり、ユーザーはキャンバスをその境界よりも少しさらにドラッグでき、リリースするとキャンバスは最小または最大の制限に戻ります。弾性動作を完全に取り除き、キャンバスが制限を超えてスクロールしないようにするには、ElasticBehaviorプロパティをNeverに設定します。