滚动框架

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

ScrollingFrame 由一个可自定义的 画布滚动条 组成,具有内置的滚动交互功能,并提供多种自定义滚动方式。ScrollingFrame 非常适合在有限空间内显示大量信息,并且与 列表网格 布局配合良好。

屏幕上示例滚动框架,包含一个选项卡类别栏和一系列供玩家考虑购买的魔法物品列表。

画布

画布ScrollingFrame 的主要区域,可以包含其他 GuiObjects。在以下情况下,滚动行为会自动适应:

框架设置结果
框架的 CanvasSize 高于其整体高度;具体来说,总的 CanvasSize.Y 超过总的 Size.Y启用垂直滚动,并出现垂直滚动条。
框架的 CanvasSize 宽于其整体宽度;具体来说,总的 CanvasSize.X 超过总的 Size.X启用水平滚动,并出现水平滚动条。
框架的 AutomaticCanvasSize 设置为 YXY,并且其内容(子 GuiObjects)的总高度超过其总的 Size.Y启用垂直滚动,并出现垂直滚动条。
框架的 AutomaticCanvasSize 设置为 XXY,并且其内容(子 GuiObjects)的总宽度超过其总的 Size.X启用水平滚动,并出现水平滚动条。

CanvasPosition 属性反映了画布在框架内的 当前 位置偏移(以像素为单位),并相应地设置滚动条的位置。请注意,如果滚动条不可见,则此属性不会起作用。

内边距

滚动框架的 CanvasSize 可能会受到 VerticalScrollBarInset 和/或 HorizontalScrollBarInset 属性的影响。在以下示例图中,一个垂直滚动的框架使用 100% 的画布宽度。当 VerticalScrollBarInset 设置为 None(默认)时,画布扩展到滚动框架的全宽,遮挡了滚动条下方的一小部分内容。相反,VerticalScrollBarInset 设置为 AlwaysScrollBar 时,画布会根据 ScrollBarThickness 的值进行内缩,以便画布与滚动条边缘对齐。

滚动条

框架的 滚动条 反映当前画布位置,并提供自动拖动滚动的交互功能。对于垂直滚动条,VerticalScrollBarPosition 属性可以将滚动条的位置切换到画布的左侧或右侧,但水平滚动条只能放置在画布下方。

滚动条的构造由三个资产属性组成:

  • TopImage — 显示在垂直滚动条的顶部,或水平滚动条的左侧(对于水平滚动条逆时针旋转 90°)。
  • MidImage — 跨越 TopImageBottomImage 之间的区域(对于水平滚动条逆时针旋转 90°)。
  • BottomImage — 显示在垂直滚动条的底部,或水平滚动条的右侧(对于水平滚动条逆时针旋转 90°)。
图示显示构成滚动框架滚动条的三个图像资产元素。

每个图像根据 ScrollBarThickness 属性进行缩放,该属性改变垂直滚动条的宽度或水平滚动条的高度。

可以通过 ScrollBarImageColor3ScrollBarImageTransparency 属性进行额外的视觉修改,这些属性分别用于给滚动条的图像资产上色和修改其不透明度。

裁剪

By default, GuiObject containers clip their content (descendant GuiObjects) through the ClipsDescendants boolean. If you want descendants to appear outside of a container's bounds, simply set ClipsDescendants to false.

Importantly, StarterGui.ClipsDescendantsSupportsRotation must be true for clipping to work on rotated descendants (non‑zero Rotation) within the container. However, clipping by a rotated container (clipping container itself is rotated) or by rounded corners (UICorner) is not supported. If you need clipping on rotated or rounded containers, consider CanvasGroup.

弹性

默认情况下,ScrollingFrames 在触摸设备上表现出弹性滚动行为,这意味着用户可以将画布拖动到其边界之外,并在释放时,画布会弹回到其最小或最大限制。如果您希望完全移除弹性行为并确保画布永远不会超出其限制,请将 ElasticBehavior 属性设置为 Never

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。