Je crée une application qui utilise des cellules colorées pour séparer les autres cellules en catégories. Je le fais en coloriant les cellules de différentes couleurs en utilisant des instructions if else. Mais pour une raison quelconque, lorsque je lance l'application, plus je défile sur la vue de la table, plus les autres cellules changent de couleur de manière aléatoire. Voici le code dans ma classe instrumentTableCell personnalisée:Table View Cellules changeant de couleurs lors du défilement Swift
@IBOutlet var nameLabel: UILabel?
@IBOutlet var descriptionLabel: UILabel?
@IBOutlet var thumbnailImage: UIImageView!
func configurateTheCell(recipie: Recipie) {
self.nameLabel?.text = recipie.name
self.descriptionLabel?.text = recipie.description
self.thumbnailImage?.image = UIImage(named: recipie.thumbnails)
if nameLabel!.text == "Instrument"
{
backgroundColor = UIColor.orangeColor()
nameLabel?.textColor = UIColor.blackColor()
}
else if nameLabel!.text == "Optional addon"
{
backgroundColor = UIColor.cyanColor()
}
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if nameLabel!.text == "Instrument"
{
return 20
}
else if nameLabel!.text == "Optional addon"
{
return 20
}
else
{
return 100
}
}
et c'est ce que l'application ressemble lors de son lancement:
contre lorsque l'utilisateur a fait défiler un petit peu:
aussi si quelqu'un sait comment, je voudrais que les cellules colorées soient aussi plus petites donc l'application semble plus agréable.
nous montrent le contenu de 'cellForRowAtIndexPath:' méthode – arturdev
Il est parce que sont réutilisées Celles. Pour après sinon si nameLabel! .text == "Addon facultatif" {backgroundColor = UIColor.cyanColor()} 'faire' else {backgroundColor = UIColor.clearColor()} '(ou whiteColor()) – Larme
@Larme merci cela a fonctionné ! – zach2161