【问题标题】:How to keep pageControl in place while scrolling in a UICollectionView?在 UICollectionView 中滚动时如何保持 pageControl 到位?
【发布时间】:2018-11-30 12:43:49
【问题描述】:

我已经使用 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 保持在原位,但似乎并非如此,或者我做错了什么..

我在这里错过了什么? 提前感谢您的回答!

【问题讨论】:

    标签: swift uicollectionview uipagecontrol


    【解决方案1】:

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

    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 作为子级

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 2010-10-03
      • 2020-04-05
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      相关资源
      最近更新 更多