У меня есть uicollectionview с collectionviewcells, и у каждой ячейки есть логическое значение, связанное с кнопкой избранного.Существует более 50 ячеек, расположенных вертикально (четыре ячейки видны одновременно).Если нажата любимая кнопка, она переключается между выделенным изображением и невыделенным изображением.
Эта функциональность работает, но по какой-то причине, когда я нажимаю одну из них, а затем прокручиваю вниз, я вижу другие ячейки с выделенной их любимой кнопкой.Когда я прокручиваю назад вверх, кнопка избранных ячеек больше не подсвечивается.
Чего-то не хватает в этом коде?
ПРИМЕЧАНИЕ :: По умолчанию я устанавливаю логическое значение каждой ячейки в false.Это только изменилось, когда я нажимаю на любимую кнопку ячейки.
Мой код ниже:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! SimpleDispensarySubCell
cell.backgroundColor = UIColor.init(white: 0.10, alpha: 0.25)
cell.infoLine2TextVw.text = ""
cell.infoLine3TextVw.text = ""
if let heading_name = self.dict_dict_holder[indexPath.item]["Name"]{
cell.headerTextVw.text = heading_name
cell.infoLine1TextVw.text = self.dict_dict_holder[indexPath.item]["Phone"]
}
if cell.isFavorite{
cell.isFavorite = true
cell.favorite_button.setImage(#imageLiteral(resourceName: "heart_fill_icon"), for: .normal)
}
else{
cell.isFavorite = false
cell.favorite_button.setImage(#imageLiteral(resourceName: "heart_nofill_icon"), for: .normal)
}
cell.bringSubview(toFront: cell.headerTextVw)
//cell.favorite_button.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(AddFavorite(withSender:))))
cell.favorite_button.addTarget(self, action:#selector(AddFavorite), for: .touchUpInside)
return cell
}
@objc func AddFavorite(withSender sender:UIButton){
let cell = sender.superview as! SimpleDispensarySubCell
if cell.isFavorite{
cell.isFavorite = false
cell.favorite_button.setImage(#imageLiteral(resourceName: "heart_nofill_icon"), for: .normal)
}
else{
cell.isFavorite = true
cell.favorite_button.setImage(#imageLiteral(resourceName: "heart_fill_icon"), for: .normal)
}
}