组合布局集合视图中的页面控件



我正在尝试在组合布局集合视图中使用pageControl选项。我已经提到了以前和同一主题相关的一些问题,比如这个试图将CompositionalLayoutCollectionView和PageControl连接起来。visibleItemsInvalidationHandler没有调用。它对我不起作用。如果有实现这一点的方法,请帮助我。非常感谢您的支持。

section.visibleItemsInvalidationHandler = { [weak self] (items, offset, env) -> Void in
guard let self = self,
let itemWidth = items.last?.bounds.width else { return }

// This offset is different from a scrollView. It increases by the item width + the spacing between items.
// So we need to divide the offset by the sum of them.
let page = round(offset.x / (itemWidth + section.interGroupSpacing))

self.didChangeCollectionViewPage(to: Int(page))
}

正如我在代码片段中所评论的,这里的偏移量是不同的,它将项宽度和节间距相加,因此您需要将偏移量除以项宽度和组间间距,而不是将其除以内容宽度。

如果你有不同的项目宽度,这可能对你没有帮助,但我的情况是,所有项目都有相同的宽度,这是有效的。

最新更新