PageViewLayout :UICollectionViewLayout
1.准备布局----第一次会加载 reloaddata会加载 其他不会加载此方法
override func prepare()
2.步骤:
2.1 根据collectionView 获取组数 ---遍历组数----根据collectionView获取每组中的个数---
let attr = UICollectionViewLayoutAttributes(forCellWith: indexPath)
计算xy 每组中的页数 行号 列号
attr.frame = CGRect(x: itemX, y: itemY, width: itemW, height: itemH)
attrs.append(attr)
pageCount += (itemCount - 1) / (cols * rows) + 1
3.
// 2.返回布局
extension PageViewLayout{
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
return attrs
}}
// 3.返回设置滚动范围
extension PageViewLayout{
override var collectionViewContentSize: CGSize {
return CGSize(width: CGFloat(pageCount) * collectionView!.bounds.width, height: 0)
}
4.HYPageView
1.中添加titileView 和 collectionView 设置数据源代理并且把数据源代理暴露出去(collectionView本身数据源代理中调用暴露的数据源代理)
2.当collectionView滚动结束--页码的交互 和 titleView交互