所以我尝试使用 ScrollViewReader 以编程方式滚动水平滚动视图。我认为它会像 UIKit 中带有 .centeredHorizontally 的 scrollToItem 一样工作,并且在大多数情况下它确实如此,但是滚动视图中的最后几个元素被强制滚动到屏幕的中心,尽管事实上滚动视图不是t 通常能够滚动那么远(至少在释放拖动后不会回弹)。这最终会在屏幕的后半部分创建空白。
我已经看到了一些关于此的其他问题,似乎普遍认为这不是错误?一方面,我想我们是在告诉滚动视图将项目居中,它就是这样做的——所以,不是错误吗?另一方面,这不是 UIKit 中类似功能的工作方式。此外,这种行为只发生在滚动视图的尾端!如果这是预期的行为,我希望使用 .center 锚滚动到滚动视图中的第一个元素会强制它进入屏幕中心并留下前导空白,但这不会发生。
有一个优雅的解决方案吗?或者我们是否必须计算元素的宽度 + 间距并根据屏幕宽度确定我们应该锚定 .center 还是只滚动到带有锚定 .trailing 的最后一个元素以复制 UIKit 行为?