gpt4 book ai didi

swift - 如何在启用分页的情况下水平居中 UICollectionViewCells? ( swift )

转载 作者:行者123 更新时间:2023-11-28 08:34:35 25 4
gpt4 key购买 nike

我构建了一个 collectionView,我想主要在 View 的中心显示一张电影海报。我将在 collectionView 中显示大约 20 部电影,所以我想在右边缘显示一小部分下一部电影,当我移至下一页时,聚焦的电影将居中,与前一部电影和下一部电影分别在左右两侧伸出。

根据我的代码,当我翻到下一部电影时,下一部电影根本没有居中,它在 x 轴上向右移动了太多。如何以编程方式设置分页所需的距离?我怎样才能使 collectionView 能够在第一个页面之后正确居中页面?

我的 collectionView 启用了分页。我还没有创建自定义 collectionViewFlowLayout。

Screenshots of my issue Video of my issue

这是我的 collectionView 和 scrollView 代码:

extension MainViewController: UICollectionViewDelegateFlowLayout {
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let posterWidth = (collectionView.frame.size.height / 3) * 2
return CGSizeMake(posterWidth, collectionView.frame.size.height)
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
let posterWidth = (collectionView.frame.size.height / 3) * 2
let horizontalInset = (collectionView.frame.size.width - posterWidth) / 2
return UIEdgeInsetsMake(0, horizontalInset, 0, horizontalInset)
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
return 20
}
}

---------------

extension MainViewController: UIScrollViewDelegate {
func scrollViewDidScroll(scrollView: UIScrollView) {
let index = Int(collectionView.contentOffset.x / collectionView.frame.size.width)
let movie = movies[index]
updateViews(movie)
}
}

最佳答案

尝试使用

[yourCollectionView setPagingEnabled:YES];

关于swift - 如何在启用分页的情况下水平居中 UICollectionViewCells? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com