iOS - Swift UICollectionView横向分页的问题
2017-01-02 15:34
901 查看
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
效果
至于如何让item水平布局,请参考《iOS - Swift UICollectionView横向分页滚动,cell左右排版》
相关文章推荐
- iOS Swift UICollectionView横向分页滚动,cell左右排版问题详解
- iOS - Swift UICollectionView横向分页滚动,cell左右排版
- IOS UICollectionView 横向分页加载(左滑加载数据)
- Swift 自定义 UICollectionViewFlowLayout 实现横向布局分页
- 【Swift 4.0】iOS 11 UICollectionView 长按拖拽删除崩溃的问题
- iOS使用EGO实现UITableView或UICollectionView横向分页刷新
- iOS中关于Swift UICollectionView横向分页的问题
- iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)
- IOS中通过UICollectionView和UICollectionViewFlowLayout设置初始游标cursor来控制左右滑动来实现多条记录水平分页显示及控制音标读音
- 【iOS】UITabView/UICollectionView 全选问题
- iOS swift-UIScrollview,UITableview,UICollectionView单独禁止下拉(上拉)
- [iOS]swift之UITableView添加通过xib创建的headerView坑爹问题
- iOS:UICollectionView布局问题
- 横向分页滚动的UICollectionView,cell左右排版 支持多组Cell实现。
- 横向分页滚动的UICollectionView,cell左右排版
- IOS-—UICollectionView使用综述(一 )(基础篇--垂直列表方式,横向相册方式)
- IOS项目之UICollectionView中Item布局偏移问题
- iOS 关于UICollectionView的cell重用问题
- iOS使用XZMRefresh实现UITableView或UICollectionView横向刷新
- ios基于UICollectionView的 横向瀑布流