samedi 29 juillet 2017

CheckBox on tableview duplicating, Swift, iOS

I have a tableView that when selected changes an image from one to another. This all works fine but when I select a tableCell it changes the image, but when I scroll it has also changed the image of another cell that I didn't select.

Below is my code.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "FeaturesCell") as! FeaturesCell

    cell.featuresLabel.text = self.items[indexPath.row]

    return cell

}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

     pickedFeatures.append(items[indexPath.row])

    let cell = tableView.cellForRow(at: indexPath) as! FeaturesCell

    cell.checkImage.image = #imageLiteral(resourceName: "tick-inside-circle")

}

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    pickedFeatures.remove(at: pickedFeatures.index(of: items[indexPath.row])!)

    let cell = tableView.cellForRow(at: indexPath) as! FeaturesCell

    cell.checkImage.image = #imageLiteral(resourceName: "No-tick-inside-circle")
}

If I use detqueureusable cell in the did select function then it just doesn't change the picture at all when selected.




Aucun commentaire:

Enregistrer un commentaire