小编Web*_*eak的帖子

在 SwiftUI 中从 LazyHStack 获取第一个可见索引

我有以下用于在 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- 不知道应该如何根据偏移量计算索引一半是积极的,一半是消极的。

swift swiftui

1
推荐指数
1
解决办法
1760
查看次数

标签 统计

swift ×1

swiftui ×1