我有以下用于在 LazyHStack 中显示图像的代码:
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(alignment: .top) {
let photos: [PhotoObject] = []//some array of photo objects
ForEach(photos, id: \.self) { item in
KFImage.url(URL(string: item.url))
.resizable()
.frame(width: 200, height: 200)
.cornerRadius(13)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想每次当堆栈中的第一个可见项目发生变化时执行一个函数(例如,当用户向左滚动太多时,最左边的图像不再可见,而右边的图像现在是第一个可见图像)。Android 的 Jetpack compose对此有非常简单的解决方案。我玩过自定义TrackableScrollView但这只返回偏移量,我不确定它是什么,因为它以 例如 开头1500,当您滚动到末尾时,值是 ~ -1200- 不知道应该如何根据偏移量计算索引一半是积极的,一半是消极的。