Quelqu'un pourrait-il avoir la gentillesse de me montrer comment changer la couleur de la coche dans UITableView?
J'ai cherché mais ne semble pas le faire fonctionner.
À votre santé
Apple ne fournit pas de moyen public de modifier la couleur de la coche, vous devrez donc le faire avec une image.
C'est très simple, il suffit de définir la propriété accesoryView de la cellule sur un UIImageView contenant une coche de la bonne couleur.
Cela ressemblera à ceci:
UIImageView *checkmark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"coloredCheckmark.png"]];
cell.accessoryView = checkmark;
[checkmark release];
Prendre plaisir!
Étant donné que le SDK iOS a changé depuis la réponse acceptée, je pensais que je mettrais à jour avec une nouvelle réponse.
Vous pouvez en fait changer la couleur de la coche dans un UITableViewCell
en ajustant la propriété tintColor
du UITableViewCell.
Vous pouvez également définir un proxy d'apparence pour toutes les UITableViewCells afin que TOUTES les instances aient une couleur de teinte spécifique, sauf indication contraire.
[[UITableViewCell appearance] setTintColor:[UIColor redColor]];
Si vous recherchez une version Swift:
Par exemple dans tableView(_:,cellForRowAtIndexPath:)
cell.tintColor = UIColor.redColor()
UITableViewCell.appearance().tintColor = UIColor.redColor()
Les éléments suivants ont fonctionné pour moi dans iOS 7.
[self.tableView setTintColor:[UIColor someColor]];
Cette image montre comment procéder dans les story-boards. La couleur de la teinte est la couleur de la coche.
J'ai trouvé que la réponse d'igraczech est généralement correcte, mais avec iOS 6 ou version ultérieure, vous pouvez simplement définir la couleur de la teinte de la table entière et les éléments par défaut hériteront.
[self.tableView setTintColor:[UIColor someColor]];
Cela a fonctionné pour moi et m'a permis de colorier la coche.
À partir d'iOS 7, vous pouvez définir la couleur de teinte de la vue de votre contrôleur de vue afin que ce colore de teinte soit propagé à toutes ses vues enfant. Ainsi, pour définir la coche de votre UITableViewCell en couleur violette (par exemple), dans votre méthode viewWillAppear, vous devez:
[self.view setTintColor:[UIColor purpleColor]];
UITableViewCell *cell=(UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"CellIdentifier" forIndexPath:indexPath];
cell.tintColor=UIColor.whiteColor;
return cell;
UIAccessoryTypeCheckmark (côté droit) hérite de la couleur d'arrière-plan de sa vue de table.
self.tableView.backgroundColor = [UIColor clearColor];
J'ai toujours utilisé ce moyen simple:
UITableViewCell *cell = ...;
cell.tintColor = [UIColor greenColor];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
HNCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HNCustomTableViewCell" forIndexPath:indexPath];
cell.tintColor = [UIColor colorWithRed:0.99 green:0.74 blue:0.10 alpha:1.0];
return cell;
}
Ça marche pour moi.
#import "UIImage+Color.h"
UIImage *image = [[UIImage imageNamed:@"ic_check_black_24dp.png"] changeColor:CLR_BUY];
UIImageView *checkmark = [[UIImageView alloc] initWithImage:image];
cell.accessoryView = checkmark;
Les réponses ci-dessus sont toutes excellentes. Mais si vous voulez le faire globalement, faites
UITableViewCell.appearance().tintColor = .green
Joli petit truc :)
Vous n'avez pas besoin d'utiliser votre propre image, vous pouvez simplement la changer dans votre vue qui s'est chargée avec le code suivant.
[self.tableView setTintColor:[UIColor colorWithRed:250/255.0 green:223/255.0 blue:6/255.0 alpha:1]]
À votre santé!
Swift 3.1, iOS 9 +
if #available(iOS 9.0, *) {
UIImageView.appearance(whenContainedInInstancesOf: [UITableViewCell.self]).tintColor = UIColor.themeTint //add your color here
} else {
// Fallback on earlier versions
}