单元格未出现在 UICollectionView 中

Cells not appearing in UICollectionView

我不明白为什么我的单元格没有显示:

class MenuBar: UIView, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {

    let cellId = "pouet"

    lazy var customCollectionView : UICollectionView = {
        let layout = UICollectionViewLayout()
        let cv  = UICollectionView(frame: .zero, collectionViewLayout: layout)
        cv.backgroundColor = UIColor.gray
        cv.dataSource = self
        cv.delegate = self

        return cv
    }()

    override init(frame: CGRect) {
        super.init(frame: frame)

        customCollectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: cellId)
        addSubview(customCollectionView)
        addConstraintsWithFormat(format: "H:|[v0]|", views: customCollectionView)
        addConstraintsWithFormat(format: "V:|[v0]|", views: customCollectionView)
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 4
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = customCollectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath)
        print("test")

        return cell
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

现在我的print("test")也不显示了,意思是这个方法实际上没有被调用,对吧?那怎么了?

更改这行代码:

let layout = UICollectionViewLayout()

收件人:

let layout = UICollectionViewFlowLayout()

UICollectionViewLayout是抽象的class不能直接使用