Swift : 滑动 UICollectionView 和 UIPageViewController
Swift : Swipe Both UICollectionView and UIPageViewController
我创建了这个界面,collectionView
用于选项卡,pageViewController
用于滑动页面,当我滑动但无法更改时我正在获取页面索引 collectionViewTab
如何更改它?谁能告诉我,如何更新 collectionViewTab
底部指标???
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
}
在此我得到正确的页面索引:
你走在正确的道路上。
当您在 UIPageViewController
上滑动时,您会获得当前页面索引。您应该将该索引保存到 class 变量并在 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
函数中的索引进行比较。如果它匹配你有活动的标签 - 显示底部指示器。如果索引不匹配,则您的标签未激活,因此不显示底部指示器。
正如我所说,请记住这只是一个截图。不知道你的代码是什么样的,我猜你正在做这样的事情。
我创建了这个界面,collectionView
用于选项卡,pageViewController
用于滑动页面,当我滑动但无法更改时我正在获取页面索引 collectionViewTab
如何更改它?谁能告诉我,如何更新 collectionViewTab
底部指标???
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
}
在此我得到正确的页面索引:
你走在正确的道路上。
当您在 UIPageViewController
上滑动时,您会获得当前页面索引。您应该将该索引保存到 class 变量并在 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
函数中的索引进行比较。如果它匹配你有活动的标签 - 显示底部指示器。如果索引不匹配,则您的标签未激活,因此不显示底部指示器。
正如我所说,请记住这只是一个截图。不知道你的代码是什么样的,我猜你正在做这样的事情。