ske*_*get 8 ios swiftui swiftui-scrollview
我正在创建一个应用程序,在分页视图中呈现数据,每个视图都包含一个由scrollView启用的垂直可滚动列表。我还使用scrollViewReader 能够以编程方式滚动到列表中的特定位置。在大多数情况下,这工作正常,但是当我以编程方式滚动到列表底部(到最后一项)时,它滚动得太远。
我隔离了一个可重复的案例:
ScrollView(.vertical, showsIndicators: false) {
ScrollViewReader { scrollView in
LazyVStack(alignment: .leading) {
ForEach((1..<100) , id:\.self) { key in
Text("Hello \(key)")
}
}
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
withAnimation {
scrollView.scrollTo(99, anchor: .center)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您在 iPhone 12 模拟器等设备上运行此命令,您将看到列表中的最后一项位于屏幕中间。如果您手动滚动并释放,列表将“落下”到屏幕底部,这是我希望列表所在的位置,即使我使用 滚动到最后一个项目.anchor: .center。
有办法解决这种行为吗?
编辑:意识到我还不够清楚。只要我的视图中有更多可滚动内容,我希望锚点为 .center。但是,当我到达列表底部时,我希望滚动视图足够智能,知道无法再滚动。现在,它的滚动次数比手动滚动的滚动次数要多。
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |