如何在swiftui中同步滚动两个列表



我有两个并列的相关列表。我想滚动任意一个列表,另一个可以同步滚动。有什么方法可以达到这个效果吗?如有任何帮助,不胜感激。


struct ScrollTwoListsSynchronously: View {
let dataSet = [1,2,3,4,5]
var body: some View {
HStack{
List{
ForEach(dataSet,id:.self){data in
Text(String(data))
}
}
.listStyle(PlainListStyle())
List{
ForEach(dataSet,id:.self){data in
Text(String(data))
}
}
.listStyle(PlainListStyle())
}
}
}

补充信息:

看到下面的评论和回答,我意识到我的问题描述不够全面。对不起!

我想根据布局需要在两列中显示一些数据。左边显示奇数数据(NO1NO3…),右边显示偶数数据(NO2NO4…)。这两列可以有相同的行数,如果不是,左列比右列多1行。

将所有数据放入单个列表或两列网格中似乎是一个不错的选择。但我还想使用列表附带的多重选择功能,以便选择一些数据项。如果两个数据项位于列表的同一行。恐怕我不能只选其中之一。基于此考虑,我想知道是否可以使用两个列表同步显示两列数据,以保持NO1 &NO2 (NO3和NO4, NO5 &)总是在同一条线上。如果可行,我可以直接使用list的多选功能来选择任何项,而不需要创建自定义函数。

GitHub上的这个库为这个目的拯救了我的生命:

synchronouslyscrollview在SwiftUI中同步滚动scrollview

我有一个特殊的需要,使它与PKCanvasView更好地工作,但这可能是一个边缘情况。但是,我还是进行了分叉,并添加了一些小的修改来满足我的需求。

最新更新