我正在创建一个启用了分页并从左向右滚动的UICollectionView
。我正在使用NSFetchedResultsController从CoreData检索结果,这意味着它使用集合视图部分而不是行。集合视图有两行,因此显示为以下屏幕截图(顺序依次为:顶行,底行,顶行,底行等):
但是,我需要像下面的两个屏幕截图一样从左到右读取集合视图:
您能建议我如何在Swift中执行此操作吗?
最佳答案
首先,我想如果您提供一个示例,如何对当前单元格进行分区(例如,第0部分:a,b,c,d,第1部分:e,f,...)以及您希望不同部分如何划分,可能会有所帮助显示/布局。
我建议创建一个自定义UICollectionViewLayout子类。
在prepareLayout方法中,您应该为每个单元格计算并缓存UICollectionViewLayoutAttributes。
创建变量:
let xOffset = 0.0 // leftContentInset within collectionView.bounds
let yOffsetRow0 = 0.0 // y offset of first row within collectionView.bounds
let yOffsetRow1 = 50.0 // y offset of second row within collectionView.bounds
var currentXOffset : CGFloat = xOffset
var currentPage : Int = 0
计算帧,直到第一行填充到屏幕右侧(
CGRect(currentXOffset, yOffsetRow0, cellWidth, cellHeight)
,增加currentXOffset)重设
currentXOffset = xOffset
对第二行重复1.与yOffsetRow1
增量
currentPage += 1
重置
currentXOffset = xOffset + (collectionView.frame.width * currentPage)
//用于下一页重复步骤1-5,直到计算出所有单元的布局