メインコンテンツまでスキップ

スクロールビュー

YauiScrollView は、uGUI の ScrollRect と同じように、ドラッグ、スクロールホイール、スクロールバーで、ビューポートの要素の中で内容の要素をスクロールします。

スクロールビューは内容を描画変換 (YauiElement.Translate) で動かします。スクロールでレイアウトが再実行されることはありません。

セットアップ​

内容は独自のレイアウトを保ちます。縦スクロールの典型的な構成は次のとおりです。

ScrollView YauiElement (ClipChildren), YauiScrollView
└─ Content YauiElement (Position Absolute, Inset Left 0 / Top 0, Width 100%)
├─ Item
├─ Item
└─ ...
  • ビューポートは子をクリップします (ClipChildren)。Viewport を設定しなければ、スクロールビュー自身の要素がビューポートになります。
  • 内容はビューポートの左上に絶対配置された子です。縦スクロールでは、幅をビューポートの 100% にし、高さは Auto にして子に決めさせます。横スクロールでは幅と高さを入れ替えます。

プロパティ​

メンバー説明
Content, Viewportスクロールされる要素と、それを表示する要素
Horizontal, Verticalスクロールする軸
MovementTypeElastic (端を越えて引っ張ると跳ね返る)、Clamped (端で止まる)、Unrestricted
ElasticityElastic: 跳ね返るまでのおおよその秒数
Inertia, DecelerationRateドラッグの後も内容が動き続けるかどうかと、1 秒後に残る速度の割合
ScrollSensitivityスクロールホイールの 1 段あたりのキャンバス単位
HorizontalScrollbar, VerticalScrollbarスクロールビューが操作するスクロールバー。縦のものは向き TopToBottom を使います。
OnValueChanged正規化した位置が変わったときに呼び出されます

スクリプトからのスクロール​

メンバー説明
ScrollPosition内容が元の位置からどれだけスクロールしたか。キャンバス単位 (終端方向が正)
ScrollRange各軸で内容がスクロールできる量
NormalizedPosition範囲に対する割合でのスクロール位置 (左上が 0)
Velocity現在の速度
StopMovement()慣性を止めます
ScrollIntoView(element)内容の子孫を表示するために、必要最小限だけスクロールします

入れ子のスクロールビュー​

スクロールビューは、自分がスクロールできない軸のドラッグと、内容が収まっているときのスクロールホイールのイベントを、上位のスクロールビューに渡します。横方向のページャーの中の縦リストは、追加のコードなしで動作します。

スクロールビューは項目を仮想化しません。パフォーマンスを参照してください。