SwiftUI如何滚动到列表中的特定行?

8 min read

要在SwiftUI中滚动到列表中的特定行,可以使用ScrollViewReader和ScrollView。以下是实现的步骤:

1.创建一个带有ScrollView和ScrollViewReader的视图。

ScrollViewReader { scrollViewProxy in
    ScrollView {
        //列表
    }
}

2.在列表中添加一个ID,以便稍后引用该行。

List {
    ForEach(items) { item in
        Text(item.name)
            .id(item.id)
    }
}

3.在相应的操作中,使用scrollViewProxy.scrollTo()将视图滚动到列表中的指定行。例如,要将第五行滚动到视图中心,请使用以下代码:

Button("Scroll to row 5") {
    scrollViewProxy.scrollTo(items[4].id, anchor: .center)
}