滚动视图可以水平、垂直或双向滚动。当我们将视图放置在滚动视图中时,它们会自动计算出该内容的大小,以便用户可以从一个边缘滚动到另一边缘
让整个区域可滚动。为了获得这种行为,我们应该让其VStack占用更多空间
现在您可以点击并拖动屏幕上的任意位置,就可以滚动。这更加人性化。
当我们将子视图添加到滚动视图时,它们会立即且全部同时创建。 如果你想避免这种情况发生,有一个替代方案:
LazyVStack(.vertical) {
}
LazyHStack(.horizontal) {
}
它们的使用方式与常规堆栈完全相同,但会按需加载其内容 - 在实际显示之前它们不会创建视图,因此最大限度地减少了所使用的系统资源量。
有一个重要的布局差异:惰性堆栈始终占用布局中可用的空间,而常规堆栈仅占用所需的空间。这是故意的,因为如果加载需要更多空间的新视图,它会阻止惰性堆栈调整其大小。
但它会产生一个小烦恼:当您的视图在单个屏幕上很好地适应时,它们仍然会在滚动时稍微弹动。
.scrollBounceBehavior(.basedOnSize)
有了这个,当我们实际滚动内容时,我们就会得到很好的滚动弹跳,否则滚动视图就像不存在一样。