web-dev-qa-db-fra.com

Changer la couleur de l'accessoireType Swift

J'aimerais changer la couleur de mon type d'accessoire cellulaire du bleu au blanc. Le textColor est déjà défini sur blanc. Est-ce que quelqu'un d'entre vous sait comment faire cela?

Mon code:

cell!.accessoryType = UITableViewCellAccessoryType.Checkmark

12
horst

Vous pouvez définir votre propriété UITableViewCell tintColor sur la couleur souhaitée:

[cell setTintColor:[UIColor whiteColor]];
26
OscarVGG

Rapide: 

cell.tintColor = UIColor.whiteColor()

Swift 3.0 

cell.tintColor = UIColor.white
13
Dasoga

Swift 3.1:

cell.backgroundColor = UIColor.yellow // the accessoryType background 
cell.tintColor = UIColor.black // the accessoryType tint color.
2
Alessandro Ornano

Je pense que la meilleure façon de le faire est de définir accessoire de manière à créer une image de la manière suivante:

let image = UIImage(named: "some image.png")
cell.accessoryView = image
2
Nikita Zernov

Vous pouvez également modifier la couleur de teinte de la cellule à partir du storyboard (en supposant que vous utilisez un fichier xib).

1
goggelj

Dans mon cas, j'ai besoin de changer la couleur de ContentView de mon CustomCell.

Sa peut être facile à faire quand vous passez outre les méthodes:

override func setHighlighted(highlighted: Bool, animated: Bool) {}

et:

override func setSelected(selected: Bool, animated: Bool) {}

Mais quand j'ajoute à ma customCell:

cell?.accessoryType = .DisclosureIndicator

j'ai eu un problème lorsque la vue sous DisclosureIndicator ne change pas de couleur. Son ressemble à:  enter image description here

Donc, je regarde sur subviews de CustomCell et trouve que DisclosureIndicator est un bouton. Si vous changez la couleur de fond de ce bouton, vous avez ceci  enter image description here

Donc, j'essaie de changer la couleur de fond de superview de ce bouton. Et son travail est génial. 

Code complet de myCustomCell setHighlighted func:

override func setHighlighted(highlighted: Bool, animated: Bool) {
    if(highlighted){
        viewContent.view.backgroundColor = Constants.Colors.selectedBackground
        for item in self.subviews {
            if ((item as? UIButton) != nil) {
                item.superview?.backgroundColor = Constants.Colors.selectedBackground
            }
        }

    } else {
        viewContent.view.backgroundColor = Constants.Colors.normalCellBackground
        for item in self.subviews {
            if ((item as? UIButton) != nil) {
                item.superview?.backgroundColor = Constants.Colors.normalCellBackground
            }
        }

    }
}
1