UITableViewCell和UICollectionView

2019-07-29  本文已影响0人  雷霸龙

UITableViewCell和UICollectionViewCell,当我们选中某一个cell的时候,希望这条cell上的某些控件的状态得以改变,其他cell的某些控件状态也会改变,这时候我们就需要在自定义cell里面重写系统的选择方法,UITableViewCell需要重写setSelected(_ selected: Bool, animated: Bool)方法,UICollectionViewCell需要重写isSelected属性,而且需要加一个延时,不然会被覆盖掉,代码如下

// UITableViewCell重写的方法
override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
        
        if selected {
            nameLabel?.textColor = Tools.color4B84FF()   // 颜色自己根据需要来设置,这里是自己封装的方法,也可以直接用UIColor.orange等
            addressLabel?.textColor = Tools.color4B84FF()
        }else{
            nameLabel?.textColor = Tools.color223264()
            addressLabel?.textColor = Tools.color9FA5BB()
        }
    }


// UICollectionViewCell重写的属性
override var isSelected: Bool {

        willSet {
            if newValue {
                self.perform(#selector(changeColors), with: nil, afterDelay: 0.2)
//                label?.textColor = Tools.colorFDB76C()
//                label?.layer.borderColor = Tools.colorFDB76C().cgColor
            } else {
                label?.textColor = Tools.color464E6D()
                label?.layer.borderColor = Tools.color9FA5BB().cgColor
            }
        }
    }
    
    
    @objc func changeColors() {
        label?.textColor = Tools.colorFDB76C()
        label?.layer.borderColor = Tools.colorFDB76C().cgColor
    }
上一篇下一篇

猜你喜欢

热点阅读