如何在UICollectionView中滚动时将pageControl保留在适当的位置?

时间:2018-11-30 12:43:49

标签: swift uicollectionview uipagecontrol

我已使用viewDidLoad中的此功能将UIPageControl固定在集合视图控制器的底部。

 func setUpViewsAndConstraints(){
    collectionView.addSubview(pageControl)
    collectionView.bringSubviewToFront(pageControl)



    pageControl.centerXAnchor.constraint(equalTo: collectionView.centerXAnchor).isActive = true
    pageControl.bottomAnchor.constraint(equalTo: collectionView.safeAreaLayoutGuide.bottomAnchor, constant: 0).isActive = true


}

但是当我滚动浏览各个单元格时,pageControl会停留在第一个单元格的下方,而当我移至下一个单元格时,它会被留在后面...

我以为滚动和collectionView时只有单元格移动了,但事实并非如此,否则我做错了。。

我在这里想念什么? 预先感谢您的回答!

1 个答案:

答案 0 :(得分:0)

我建议您将pageControl保留在collectionView下,而不要放在里面,因为我可以看到您正在将pageControl的bottomAnchor添加到collectionView的同一底部;尝试单独保存它们,并在pageView的底部添加一个顶部约束到collectionView的底部,并在您的ViewController中添加一个centralAnchor

pageControl.centerXAnchor.constraint(equalTo: viewController.centerXAnchor).isActive = true
pageControl.topAnchor.constraint(equalTo: collectionView.safeAreaLayoutGuide.bottomAnchor, constant: 0).isActive = true

也许是您观点的底线约束

pageControl.bottomAnchor.constraint(equalTo: viewController.safeAreaLayoutGuide.bottomAnchor, constant: 0).isActive = true

显然,在这种情况下,您应该有一个UIViewController父级,其中一个UICollectionView和一个pageControl作为子级