Swift:刷UICollectionView和UIPageViewController

时间:2017-01-05 07:47:31

标签: ios swift uicollectionview uipageviewcontroller

我创建了这个界面,collectionView用于标签,pageViewController用于刷卡页面,当我刷卡但无法更改collectionViewTab如何更改页面时,我获得了网页索引?有人告诉我,如何更新collectionViewTab底部指标???

 func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {

  }

在这里我得到了正确的页面索引:

enter image description here

1 个答案:

答案 0 :(得分:2)

你走在正确的道路上。 当您在UIPageViewController上滑动时,您将获得当前页面索引。您应该将该索引保存到类变量并在cellForItemAtIndexPath中使用它来确定选项卡索引是否与当前显示的UIPageViewController匹配。所以这样的事情应该有效:

 func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
      let cell = collectionView.dequeueReusableCellWithReuseIdentifier("reuseIdentifier", forIndexPath: indexPath)

      if indexPath.item == classIndexVariable {
        bottomIndicator.isHidden = false // show indicator at current position
      }else{
        bottomIndicator.isHidden = true // hide indicator from all only shows in matched condition
       }

      return cell
    }

解释: 在cellForItemAtIndexPath中,您必须将当前单元格索引与您在UIPageViewController didFinishAnimating函数中保存的索引进行比较。如果匹配则您有活动标签 - 显示底部指示符。如果索引不匹配,则您的选项卡不活动,因此不显示底部指示符。

正如我所说,请记住,这只是一个狙击手。不知道你的代码是什么样的,我猜你正在做这样的事情。