J'ai créé une coutume UITableViewCell
. La vue sous forme de tableau affiche les données correctement. Ce que je suis coincé, c'est lorsque l'utilisateur touche la cellule de la vue de table, puis je veux afficher la couleur d'arrière-plan de la cellule autre que les valeurs par défaut [couleur bleue] pour mettre en surbrillance la sélection de la cellule. J'utilise ce code mais rien ne se passe:
cell.selectedBackgroundView.backgroundColor=[UIColor blackColor];
Pas besoin de cellules personnalisées. Si vous souhaitez uniquement modifier la couleur sélectionnée de la cellule, vous pouvez le faire:
Objectif c:
Rapide:
la source
La couleur d'arrière-plan de la sélection de cellule de vue de tableau peut être définie via le Storyboard dans Interface Builder:
la source
Si vous avez un tableau groupé avec une seule cellule par section, ajoutez simplement cette ligne supplémentaire au code:
bgColorView.layer.cornerRadius = 10;
N'oubliez pas d'importer QuartzCore.
la source
Swift 3: pour moi, cela a fonctionné lorsque vous le mettez dans la
cellForRowAtIndexPath:
méthodela source
awakeFromNib()
méthode (en cas de cellule personnalisée).Ce qui suit fonctionne pour moi dans iOS 8.
Je dois définir le style de sélection sur
UITableViewCellSelectionStyleDefault
pour que la couleur d'arrière-plan personnalisée fonctionne. Si vous utilisez un autre style, la couleur d'arrière-plan personnalisée sera ignorée. Il semble y avoir un changement de comportement, car les réponses précédentes doivent plutôt définir le style sur aucun.Le code complet de la cellule comme suit:
la source
Créez une cellule personnalisée pour votre cellule de tableau et dans la cellule personnalisée class.m mettez le code ci-dessous, cela fonctionnera bien. Vous devez placer l'image couleur souhaitée dans
selectionBackground
UIImage.la source
Extension Swift 3.0
cell.selectionColor = UIColor.FormaCar.blue
la source
@IBInspectable
sur le var si vous voulez.@IBDesignable
n'est pas utile pour cela.Nous devons définir la vue d'arrière-plan sélectionnée dans cette méthode.
la source
Si vous souhaitez ajouter une couleur personnalisée en surbrillance à votre cellule (et votre cellule contient des boutons, des étiquettes, des images, etc.), j'ai suivi les étapes suivantes:
Par exemple, si vous souhaitez une couleur jaune sélectionnée:
1) Créez une vue qui convient à toutes les cellules avec une opacité de 20% (avec une couleur jaune) appelée par exemple backgroundselectedView
2) Dans le contrôleur de cellule, écrivez ceci:
la source
Dans Swift 4, vous pouvez également définir la couleur d'arrière-plan de votre cellule de tableau globalement (prise à partir d' ici ):
la source
Si vous utilisez un TableViewCell personnalisé, vous pouvez également remplacer
awakeFromNib
:la source
Une autre astuce pour la manière de Christian de montrer l'arrière-plan des coins arrondis pour la table groupée.
Si j'utilise
cornerRadius = 10
pour la cellule, il montre l'arrière-plan de sélection arrondi de quatre coins. Ce n'est pas la même chose avec l'interface utilisateur par défaut de la vue tabulaire.Donc, je pense à un moyen facile de le résoudre avec cornerRadius . Comme vous pouvez le voir dans les codes ci-dessous, vérifiez l'emplacement de la cellule (haut, bas, milieu ou haut) et ajoutez un sous-calque supplémentaire pour masquer le coin supérieur ou le coin inférieur. Cela montre exactement le même aspect avec l'arrière-plan de sélection de la vue de tableau par défaut.
J'ai testé ce code avec iPad
splitterview
. Vous pouvez modifier la position du cadre de patchLayer selon vos besoins.Veuillez me faire savoir s'il existe un moyen plus simple d'obtenir le même résultat.
la source
Je tiens à noter que l'éditeur XIB vous propose les options standard suivantes:
Section: bleu / gris / aucun
(la colonne de droite avec des options, 4ème onglet, premier groupe "Cellule de vue de tableau", 4ème sous-groupe, le 1er des 3 éléments lit "Sélection")
Ce que vous voulez faire peut probablement être atteint en sélectionnant la bonne option standard.
la source
Selon la couleur personnalisée pour une cellule sélectionnée
UITableView
, excellente solution selon la réponse de Maciej SwicJuste pour ajouter à cela, vous déclarez la réponse de Swic dans la configuration cellulaire généralement sous:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Et pour un effet supplémentaire, au lieu des couleurs du système, vous pouvez utiliser des valeurs RVB pour un aspect de couleur personnalisé. Dans mon code, voici comment je l'ai réalisé:
Faites-moi savoir si cela fonctionne aussi pour vous. Vous pouvez jouer avec le
cornerRadius
numéro des effets sur les coins de la cellule sélectionnée.la source
J'ai une approche légèrement différente de tout le monde qui reflète la sélection au toucher plutôt qu'après avoir été sélectionnée. J'ai un UITableViewCell sous-classé. Il vous suffit de définir la couleur d'arrière-plan dans les événements tactiles, ce qui simule la sélection tactile, puis de définir la couleur d'arrière-plan dans la fonction setSelected. La définition de la couleur d'arrière-plan dans la fonction selSelected permet de désélectionner la cellule. Assurez-vous de transmettre l'événement tactile au super, sinon la cellule n'agira pas comme si elle était sélectionnée.
la source
Pour ajouter l'arrière-plan de toutes les cellules (en utilisant la réponse de Maciej):
la source
Pour remplacer
UITableViewCell
« ssetSelected
fonctionne également.la source
pour ceux qui veulent juste se débarrasser de l'arrière-plan gris par défaut, mettez cette ligne de code dans votre func cellForRowAtIndexPath:
la source
pour Swift 3.0:
la source
J'utilise l'approche ci-dessous et fonctionne bien pour moi,
la source
Swift 4+:
Ajoutez les lignes suivantes dans votre cellule de tableau
Enfin, il devrait être comme ci-dessous
la source
Voici les parties importantes du code nécessaires pour une table groupée. Lorsqu'une des cellules d'une section est sélectionnée, la première ligne change de couleur. Sans définir initialement le style de sélection de cellule sur aucun, il y a un double rechargement annonant lorsque l'utilisateur clique sur row0 où la cellule se transforme en bgColorView, puis s'estompe et recharge à nouveau bgColorView. Bonne chance et faites-moi savoir s'il existe un moyen plus simple de le faire.
la source
En cas de classe de cellule personnalisée. Remplacez simplement:
la source
C'est facile lorsque le style de vue de table est simple, mais en style de groupe, c'est un peu difficile, je le résous par:
a noté le kGroupTableViewCellWidth, je le définis comme 300, c'est la largeur de la largeur de cellule de la vue de table de groupe dans l'iPhone
la source
Assurez-vous que vous avez utilisé la ligne ci-dessus pour utiliser l'effet de sélection
la source
la source
J'utilise iOS 9.3 et la définition de la couleur via le Storyboard ou le paramètre
cell.selectionStyle
n'a pas fonctionné pour moi, mais le code ci-dessous a fonctionné:J'ai trouvé cette solution ici .
la source
Essayez de suivre le code.
// Version Swift:
la source
Swift 4.x
Pour changer la couleur d'arrière-plan de la sélection en n'importe quelle couleur, utilisez l' extension Swift
Créez l'extension UITableView Cell comme ci-dessous
Appelez ensuite removeCellSelectionColour () avec une instance de cellule.
la source