首页 > 解决方案 > 页面控制在完全进入下一页之前切换页面

问题描述

我为集合视图创建了一个页面控件,每个集合视图单元格都是屏幕的高度和宽度。这是页面控件的设置:

// Setup the page control
func setupPageControl() {

    pageControl.pageIndicatorTintColor = cellColor
    pageControl.currentPageIndicatorTintColor = themeColor

    view.addSubview(pageControl)
    addPageControlConstraints()
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    pageControl.numberOfPages = collectionViewCellData.count
    return collectionViewCellData.count
}

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    pageControl.currentPage = indexPath.row
}

页面控件有一个小问题,看看这个:

录屏

请注意,当我还没有完全进入下一页时,页面控件是如何变化的,我该如何解决这个问题?

标签: iosswiftuicollectionviewuipagecontrol

解决方案


问题只是您在 willDisplay 单元格中设置页面控件的 currentPage ,文档说:

告诉委托指定的单元格即将显示在集合视图中。

这是在显示单元格之前调用的方法。

你应该scrollViewDidEndDecelerating(_ scrollView: UIScrollView)为你的目的使用。


推荐阅读