在tableview的特定单元格中放置一个图标 - Swift

问题描述

我正在尝试制作一个联系人列表,并以编程方式在每个姓氏等于某个字符串的名字附近放一个星号,如下图所示。 但实际上,问题是当某个单元格上出现这颗星星时,向下或向上滚动时,几乎其他单元格也会出现该星星。 (这就像冠状病毒,到处传播)。 有人能帮我解决这个问题吗? 这是我的 TableView 代码

    func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let item = self.tableArray[indexPath.row]
    
        let cell:SLF_LabelIconCell = tableView.dequeueReusableCell(withIdentifier: SLF_LabelIconCell.className) as? SLF_LabelIconCell ?? SLF_LabelIconCell()
    
        //Add a star near favorite contacts
        if item.familyName == "Zaghrini"{
           cell.favoriteIcon.isHidden=false
        }
        return cell
    }

乍一看,它显示正确

At first glace,it appears correctly

但是上下滚动后,出现了更多的星星:

After scrolling

解决方法

试试这个:

if item.familyName == "Zaghrini" {
       cell.favoriteIcon.isHidden = false
    } else {
        cell.favoriteIcon.isHidden = true
    }