根据当前显示的UICollectionViewCell更改UISegmentedControl.selectedInde



如何根据当前显示的UICollectionViewCell更改UISegmentedControl.selectedIndex值?我的collectionView将isPagingEnabled设置为true,我可以根据UISegmentedControl的所选索引轻松选择不同的项目,但我怎么能做相反的事情呢?

是否有一个函数在用户每次更改collectionView的页面时被调用,该页面还提供当前显示项目的indexPath

访问visibleCells数组似乎没有任何用处。类似的功能

func collectionViewDidPage(_ collectionView: UICollectionView, _ fromIndexPath: IndexPath, _ toIndexPath: IndexPath) {
let tag = myCollectionView.cellForItem(at: toIndexPath).tag
self.segmentedControl.selectedSegmentIndex = tag
}

其中fromIndexPathtoIndexPath[/strong>是两个单元格(我开始滚动的单元格和我将结束滚动的单元格(的索引路径。

我能做什么?

以下代码似乎运行得很好:

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let pageNumber = round(scrollView.contentOffset.x / scrollView.frame.size.width)
segmentedControl.selectedSegmentIndex = Int(pageNumber)
}

相关内容

  • 没有找到相关文章

最新更新