iOS UICollectionView 横向分页布局

本文介绍了如何自定义UICollectionView实现横向分页布局,通过创建一个继承自UICollectionViewFlowLayout的类,设置分页属性并调整item的x、y坐标。在布局过程中,作者遇到并解决了分页处item位置不正确的问题,通过计算间隔实现正确偏移,最终实现预期效果。
摘要由CSDN通过智能技术生成

有一种流行的 UICollectionView 横向分页布局方式,当你布局好 itemSize 等信息后,兴冲冲的运行模拟器时,却发现结果是这样的:

此时你想要的布局方式应该是这样:

那我们就需要重新自定义 UICollectionViewFlowLayout

网上看了一些写法,不过大部分都是相同的,由于看不懂(智商太低了),而且网上的写法没能解决我后面的一个问题(后面会说到,分页处的 item x 不对的问题),于是自己思考写了一个。不足之处,还望指正。

重新布局

新建一个继承于 UICollectionViewFlowLayout 的类,定义好基本信息:

self.collectionView?.isPagingEnabled = true
复制代码
final class ItemFlowLayout: UICollectionViewFlowLayout {

    /// 包含了所有重新布局的 item,在代理方法中,需要返回这个我们自己包装的数组。
    private lazy var allAttrs = [UICollectionViewLayoutAttributes]()
    /// 图片大小
    private lazy var iconSize = #imageLiteral(resourceName: "惠整形").size
    /// item 间隔
    private var space: CGFloat {
        return (collectionView!.frame.width - iconSize.width * 5) / 6
    }
    /// 设置分页大小
    override var collectionViewContentSize: CGSize {
        return CGSize(width: screenWidth * 2, height: iconSize.height + 17 + 5)
    }


    override init() {
        super.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值