使用“UICollectionViewCompositionalLayout”时如何检测正交滚动事件?

Chr*_*ute 15 wwdc ios uicollectionview uicollectionviewlayout swift

在视频“集合视图布局的进展 - WWDC 2019”中,Apple 引入了新的“正交滚动行为”功能。我有一个与OrthogonalScrollingViewController示例代码几乎相同的视图控制器。特别是我的集合视图是垂直布局的,每个部分都可以水平滚动(我使用section.orthogonalScrollingBehavior = .groupPaging)。

我想让我的所有部分一致水平滚动。以前,我在每个水平集合视图上监听scrollViewDidScroll,然后手动设置其他视图的内容偏移量。但是,使用新的orthogonalScrollingBehavior实现,scrollViewDidScroll当我水平滚动时,永远不会调用委托。如何使用新 API 检测水平滚动事件?

如果有另一种方法可以使各部分水平滚动在一起,我也愿意接受其他建议。

Ily*_*lya 4

您可以使用此回调:

let section = NSCollectionLayoutSection(group: group)

section.visibleItemsInvalidationHandler = { [weak self] (visibleItems, offset, env) in
}
Run Code Online (Sandbox Code Playgroud)