2016-08-09 1 views
4

Je veux changer la couleur de chaque arrière-plan de la cellule dans l'ordre.Comment changer chaque couleur de fond de uitableviewcell

Ceci est mes couleurs.Et je veux juste les montrer comme indiqué dans l'image.

Je le montre avec des couleurs aléatoires maintenant.Mais je veux les montrer dans l'ordre.

var cellColors = ["F28044","F0A761","FEC362","F0BB4C","E3CB92","FEA375"] 
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
     let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! GroupTableViewCell 
     let randomColor = Int(arc4random_uniform(UInt32(self.cellColors.count))) 
     cell.contentView.backgroundColor = UIColor(hexString: self.cellColors[randomColor]) 
    } 

enter image description here

+0

font en cellForRowAtIndexPath. Si vous avez des problèmes, montrez-nous le code. –

+0

J'ai modifié ma question –

Répondre

6

Vous devez supprimer cette ligne

let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! GroupTableViewCell 

de votre fonction willDisplayCell, car il a déjà votre cellulaire dans les paramètres, et vous le remplaçant simplement avec une nouvelle cellule, et votre nouvelle cellule ne sera jamais utilisé.

Si vous voulez montrer les couleurs dans l'ordre, vous pouvez utiliser indexPath:

var cellColors = ["F28044","F0A761","FEC362","F0BB4C","E3CB92","FEA375"] 
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    cell.contentView.backgroundColor = UIColor(hexString: cellColors[indexPath.row % cellColors.count]) 
} 
+1

édité: Désolé, je n'ai pas vu indexPath.row% cellColors.count thats travaillé. Merci –

+0

Aussi le type de cellule doit être personnalisé – ergunkocak

+0

@ShadowOf pouvons-nous changer la couleur de la cellule en utilisant UITableViewRowAction ??? par exemple: let color = UITableViewRowAction (style: .normal, title: "Couleur") {(_, indexPath) dans cell.contentView.backgroundColor = UIColor (hexString: cellColors [indexPath.row% cellColors.count]) } } – ArgaPK

0

Faire un tableau avec les couleurs, peut-être vous devez les créer dynammically mais dans cet exemple ils sont codés en dur.

let bgColors = [UIColor.blackColor(), UIColor.grayColor(), UIColor.whiteColor()]; 

Ensuite, dans votre cellForRowAtIndexPath prendre la couleur à l'index correct et mettez-le pour la cellule. Je ne connais pas votre configuration actuelle, mais quelque chose de similaire devrait fonctionner.

let bgColor = bgColors[indexPath.row] 
cell.contentView.backgroundColor = bgColor