美文网首页
创建一个简单的CollectionView

创建一个简单的CollectionView

作者: 午饭吃啥 | 来源:发表于2019-08-17 11:05 被阅读0次

遵循代理UICollectionViewDataSource,UICollectionViewDelegateFlowLayout

class CollectionViewVC: UIViewController,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout

因为要实现UICollectionViewDelegateFlowLayout代理方法,UICollectionViewDelegateFlowLayout继承于UICollectionViewDelegate,所以不添加UICollectionViewDelegate

懒加载一个CollectionView

lazy var collectionV : UICollectionView = {
        () -> UICollectionView in
    
        //collection
        let tempCollectionV = UICollectionView(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height), collectionViewLayout: UICollectionViewFlowLayout())
        //隐藏滑动条
        tempCollectionV.showsVerticalScrollIndicator = false
        //代理
        tempCollectionV.delegate = self
        tempCollectionV.dataSource = self
        //注册cell
        tempCollectionV.register(UICollectionViewCell.classForCoder(), forCellWithReuseIdentifier: "collectionCellID")
        
        return tempCollectionV
    }()

实现UICollectionViewDelegate

//多少组
    func numberOfSections(in collectionView: UICollectionView) -> Int {
        return 3
    }
    //每组多少个
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 10
    }

实现 UICollectionViewDataSource

//创建cell
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let ID = "collectionCellID"
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath)
        let imageView:UIImageView? = (cell.viewWithTag(1) as? UIImageView)
        if imageView == nil{
            
            let imageV = UIImageView()
            imageV.backgroundColor = UIColor.orange
//            imageV.frame = CGRect(x: 0, y: 0, width: SCREEN_WIDTH / 2 - 30, height: SCREEN_WIDTH / 2 - 30)
            imageV.tag = 1
            cell.backgroundColor = UIColor.orange
            cell.addSubview(imageV)
        }else{
            imageView?.backgroundColor = UIColor.orange
        }
        
        return cell
    }

实现 UICollectionViewDelegateFlowLayout

//cell大小
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        
        return CGSize(width: SCREEN_WIDTH / 2 - 15, height: SCREEN_WIDTH / 2 - 30)
    }
    //cell基础间距
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
        return UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
    }
    //纵向最小间距
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        
        return 10
    }
    //横向最小间距
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        
        return 5
    }

相关文章

网友评论

      本文标题:创建一个简单的CollectionView

      本文链接:https://www.haomeiwen.com/subject/wejhsctx.html