scrollToRow(at:at:animated:) SwiftUI
Posted
技术标签:
【中文标题】scrollToRow(at:at:animated:) SwiftUI【英文标题】: 【发布时间】:2019-11-24 06:08:11 【问题描述】:我有 List
有 100 个项目
我想滚动到项目编号 20
我如何在SwiftUI
中实现这一点
这是我的简单 ListCode
struct ContentView: View
var body: some View
List
Button(action:
self.scrollToIndex(index: 20)
)
Text("Scroll To 20")
ForEach(0..<100) _ in
Text("Hello World")
func scrollToIndex(index: Int)
【问题讨论】:
【参考方案1】:早些时候试图为这个answering here 找到一些解决方案。不久:今天(2019 年 11 月)我没有找到解决方案,除了使用 ScrollView
或 UITableView
(最后一个 UIViewControllerRepresentable
)
更新在 9 月发现 Apple Developer Forums thread 有这个问题,但仍然没有答案
【讨论】:
【参考方案2】:使用 ios 14 中的新 ScrollViewReader
,您可以简单地执行以下操作:
struct ContentView: View
var body: some View
ScrollViewReader proxy in
List
Button(action:
self.scrollToIndex(proxy, index: 20)
)
Text("Scroll To 20")
ForEach(0..<100) i in
Text("Hello World").id(i)
func scrollToIndex(_ proxy: ScrollViewProxy, index: Int)
withAnimation
proxy.scrollTo(index)
【讨论】:
以上是关于scrollToRow(at:at:animated:) SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章