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
}
网友评论