📜  UICollectionViewCell awakefromnib 示例 (1)

📅  最后修改于: 2023-12-03 15:35:27.215000             🧑  作者: Mango

UICollectionViewCell awakeFromNib方法介绍

UICollectionView中,每一个UICollectionViewCell都有自己的awakeFromNib方法,这个方法会在Cell从nib文件中创建时被调用。在这个方法中,我们可以对Cell的UI进行一些初始化操作,比如添加手势、设置背景色等等。

下面是一个简单的示例,演示了如何在UICollectionViewCellawakeFromNib方法中,添加一个tap手势,同时还可以通过代码或者IB来修改背景颜色。

class MyCollectionViewCell: UICollectionViewCell {
    
    override func awakeFromNib() {
        super.awakeFromNib()
        
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(sender:)))
        self.contentView.addGestureRecognizer(tapGesture)
    }
    
    @objc func handleTap(sender: UITapGestureRecognizer) {
        self.contentView.backgroundColor = .red
    }
    
}

我们首先定义了一个UITapGestureRecognizer对象,并指定了它的target和action,然后将它添加到了Cell的contentView上面。这样一来,当用户点击Cell的时候,我们的handleTap方法就会被调用,我们就可以在这个方法里修改Cell的UI了。

当然,我们也可以通过代码或者IB来修改Cell的背景颜色,比如:

// 代码中修改背景颜色
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath) as! MyCollectionViewCell
cell.contentView.backgroundColor = .blue

// 在IB中修改背景颜色
// 打开你的storyboard或xib文件,选中你的CollectionViewCell,切换到Attributes Inspector面板,
// 找到Background一项,可以在这里修改Cell的背景颜色。

总之,awakeFromNib方法为我们在初始化UICollectionViewCell的时候提供了一个很好的机会,我们可以在这里进行一些UI的初始化工作,让我们的代码变得更加优雅。