7 滚动视图

原文链接: https://developer.apple.com/documentation/swiftui/scroll-views

7 滚动视图

让大家能够滚动查看当前显示区域放不下的内容。

概述

当视图的内容在显示区域里放不下时,你可以把这个视图包在一个 ScrollView 中,让大家可以在一个或多个轴向上滚动。用视图修饰符来配置这个滚动视图,例如,你可以设置滚动指示器的可见性,或者某个维度上是否允许滚动。

你可以在滚动视图中放任何类型的视图,但最常把滚动视图用于元素太多、显示区域放不下的布局容器。对于放进滚动视图的某些容器视图(例如惰性栈),容器在视图可见或几乎可见之前不会加载它们。对于另外一些容器(例如普通栈和网格),无论滚动状态如何,容器都会一次性加载全部内容。

列表 和 表格 隐式包含一个滚动视图,因此无需为这两类容器添加滚动功能。不过,你可以用与显式滚动视图相同的视图修饰符来配置它们的隐式滚动视图。

关于设计指导,请参阅 Human Interface Guidelines 中的 滚动视图。

创建滚动视图

  • ScrollView — 一种可滚动的视图。
  • ScrollViewReader — 一种提供编程式滚动的视图,它与一个代理协作,滚动到已知的子视图。
  • ScrollViewProxy — 一个代理值,支持以编程方式滚动视图层级中的可滚动视图。

管理滚动位置

定义滚动目标

为滚动过渡添加动画

响应滚动视图的变化

显示滚动指示器

管理内容可见性

停用滚动

  • scrollDisabled(_:) — 停用或启用可滚动视图中的滚动。
  • isScrollEnabled — 一个布尔值,指示与该环境关联的任何滚动视图是否允许发生滚动。

配置滚动回弹行为

配置滚动边缘效果

与软件键盘交互

为不同输入方式管理滚动