Je me demande comment changer la couleur de surbrillance / sélection bleue d'un UITableViewCell
, des idées?
ios
uitableview
Thomas Joos
la source
la source
selectedBackgroundView
cela n'apparaîtra alors tout simplement jamais. Ce n'est qu'après avoir réglé "Sélection" sur Default, leselectedBackgroundView
show up. Testé sur iOS 6 et 7.cell.selectedBackgroundView = [UIView new];
et vous définissez la couleur que vous voulez:cell.selectedBackgroundView.backgroundColor = [UIColor colorWithHex:@"ecf2f5" andAlpha:1];
Zonble a déjà fourni une excellente réponse. J'ai pensé qu'il pourrait être utile d'inclure un court extrait de code pour ajouter un
UIView
à la cellule de vue du tableau qui se présentera comme vue d'arrière-plan sélectionnée.UITableViewCell
selectedBackgroundView
pour qu'elle soit celleUIView
que j'ai créée avec la couleur de fond choisieCela a bien fonctionné pour moi. Merci pour le conseil Zonble.
la source
UITableViewCell
a trois styles de sélection par défaut: -La mise en œuvre est la suivante: -
la source
Dans Swift, utilisez ceci dans
cellForRowAtIndexPath
Si vous souhaitez que la couleur de votre sélection soit la même dans tous les domaines
UITableViewCell
, utilisez-la dansAppDelegate
.la source
Si vous souhaitez le modifier à l'échelle de l'application, vous pouvez ajouter la logique à votre délégué d'application
la source
par souci d'exhaustivité: si vous avez créé votre propre sous-classe de,
UITableViewCell
vous pouvez implémenter la- (void)setSelected:(BOOL)selected animated:(BOOL)animated
méthode et définir la couleur d'arrière-plan d'une vue que vous avez ajoutée dans la vue de contenu. (si tel est le cas) ou du contentView lui-même (s'il n'est pas couvert par l'une de vos propres vues.(n'a pas utilisé? pour s'adapter à la petite largeur du code source DIV's :)
cette approche présente deux avantages par rapport à l'utilisation de selectedBackgroundView, elle utilise moins de mémoire et un peu moins de CPU, non pas que vous le remarqueriez même à moins d'afficher des centaines de cellules.
la source
selectedBackgroundView
Au tout début de la méthode addself. selectedBackgroundView = [UIView new];
selectedBackgroundView
propriété.Je dois définir le style de sélection sur
UITableViewCellSelectionStyleDefault
pour que la couleur d'arrière-plan personnalisée fonctionne. S'il s'agit d'un autre style, la couleur d'arrière-plan personnalisée sera ignorée. Testé sur iOS 8.Le code complet de la cellule comme suit:
la source
En fonction de la réponse de @utilisateur , vous pouvez simplement ajouter cette extension n'importe où dans le code de votre application et avoir la couleur de votre sélection directement dans l'éditeur de storyboard pour toutes les cellules de votre application:
la source
Dans votre storyboard, définissez la classe de votre UITableViewCell sur UIDesignableTableViewCell, dans l'inspecteur d'attributs, vous pouvez changer la couleur sélectionnée de votre cellule en n'importe quelle couleur.
Vous pouvez l'utiliser pour toutes vos cellules. Voici à quoi ressemblera votre inspecteur d'attributs.
la source
UIColor.clear
, nonUIColor.clearColor()
. Je ne sais pas si c'est un changement dans Swift aussi, mais cela fonctionne également sans@IBDesignable
.Swift 3.0 / 4.0
Si vous avez créé votre propre cellule personnalisée, vous pouvez modifier la couleur de sélection
awakeFromNib()
pour toutes les cellules:la source
1- Ajoutez une vue à la vue de contenu de votre cellule.
2- Faites un clic droit sur votre cellule.
3- Faire la vue ajoutée comme "selectedBackgroundView"
la source