Swift didSelectItemAt:未被调用(UICollectionView)

Swift didSelectItemAt:未被调用(UICollectionView),swift,uicollectionview,Swift,Uicollectionview,我在UIView类中有一个UICollectionView,因为它是在另一个类中实现的。我将委托和数据源和允许选择设置为true,但是didSelectItemAt方法不起作用,我无法找出原因。这是代码: class NewRecipeViewCategoryCV: UIView, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout { lazy var collect

我在
UIView
类中有一个
UICollectionView
,因为它是在另一个类中实现的。我将
委托
数据源
允许选择
设置为true,但是
didSelectItemAt
方法不起作用,我无法找出原因。这是代码:

class NewRecipeViewCategoryCV: UIView, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {

lazy var collectionView: UICollectionView = {
    let layout = UICollectionViewFlowLayout()
    layout.scrollDirection = .horizontal
    let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
    cv.showsHorizontalScrollIndicator = false
    cv.backgroundColor = UIColor.white
    cv.translatesAutoresizingMaskIntoConstraints = false
    cv.dataSource = self
    cv.delegate = self
    cv.allowsSelection = true
    return cv
}()

let newRecipeModel = NewRecipeModel()

let cellId = "cellId"

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

    collectionView.register(NewRecipeViewCategory.self, forCellWithReuseIdentifier: cellId)

    addSubview(collectionView)
    collectionView.topAnchor.constraint(equalTo: topAnchor).isActive = true
    collectionView.leftAnchor.constraint(equalTo: leftAnchor).isActive = true
    collectionView.heightAnchor.constraint(equalTo: heightAnchor).isActive = true
    collectionView.widthAnchor.constraint(equalTo: widthAnchor).isActive = true
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return newRecipeModel.recipeCategory.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! NewRecipeViewCategory

    cell.categoryText.text = newRecipeModel.recipeCategory[indexPath.item].uppercased()

    return cell
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print(123)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let category: UILabel = {
        let category = UILabel()
        category.text = "BREAKFAST"
        category.font = UIFont(name: "SourceSansPro-Regular", size: 13)
        category.translatesAutoresizingMaskIntoConstraints = false
        category.textColor = UIColor.black
        category.sizeToFit()
        return category
    }()
    return CGSize(width: category.frame.width+15, height: category.frame.height+12)  
}

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

}

但您的collectionView是否加载了数据源?可能有委托和数据源未正确连接。谢谢,已解决。