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

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

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

直接看图

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

滚前

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

滚后

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

<UICollectionView: 0x7fc565076000; 
frame = (0 0; 375 197); 
clipsToBounds = YES; 
gestureRecognizers = <NSArray: 0x6180000557e0>; 
layer = <CALayer: 0x61000022a5a0>; 
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横向分页的问题
文章路径:https://www.cdcxhl.com/article28/jcdejp.html

成都网站建设公司_创新互联,为您提供面包屑导航企业建站微信公众号响应式网站网站收录

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设