iOS中如何解决SwiftUICollectionView横向分页的问题

这篇文章主要介绍iOS中如何解决Swift UICollectionView横向分页的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比青县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式青县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖青县地区。费用合理售后完善,十多年实体公司更值得信赖。

直接看图

iOS中如何解决Swift UICollectionView横向分页的问题

滚前

iOS中如何解决Swift UICollectionView横向分页的问题

滚后

已经设置collectionView的isPagingEnabled为true了,可是出现了这种情况,原因就是collectionView的contentSize不够。

; 
layer = ; 
contentOffset: {187.5, 0}; 
contentSize: {562.5, 192.25}
>

解决方案

有两种方式可以解决,数据只有11个,要分两页需要16个,那我们可以直接添加数据到16个,然后在dataSource中返回cell时进行判断及处理即可。不过对于现在来说太小题大做了,我选第二种方式~

直接修改contentSize

我自定义了一个继承于UICollectionViewFlowLayout的Layout(LXFChatMoreCollectionLayout),让UICollectionView在创建的时候使用了它

在 LXFChatMoreCollectionLayout.swift 中我们需要重写父类的collectionViewContentSize,将contentSize取出来修改为我们自己创建的newSize就可以了代码如下

override var collectionViewContentSize: CGSize {
  let size: CGSize = super.collectionViewContentSize
  let collectionViewWidth: CGFloat = self.collectionView!.frame.size.width
  let nbOfScreen: Int = Int(ceil(size.width / collectionViewWidth))
  let newSize: CGSize = CGSize(width: collectionViewWidth * CGFloat(nbOfScreen), height: size.height)
  return newSize
}

注:ceil函数的作用是求不小于给定实数的最小整数。ceil(2)=ceil(1.2)=cei(1.5)=2.00

效果

iOS中如何解决Swift UICollectionView横向分页的问题

以上是“iOS中如何解决Swift UICollectionView横向分页的问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


标题名称:iOS中如何解决SwiftUICollectionView横向分页的问题
网页路径:http://myzitong.com/article/jcdejp.html