169 votes

UITableView, couleur de séparation où la définir ?

J'ai ajouté un UITableView dans IB et j'ai défini le "delegate" et le "datasource" et tout fonctionne bien. Ce que je voulais faire ensuite était de changer la couleur du séparateur, mais la seule façon que j'ai trouvée pour le faire était d'ajouter la méthode à l'un des rappels du délégué, y a-t-il un meilleur endroit où je devrais mettre ceci ?

Je n'ai pas cela pour le moment mais je pensais que peut-être je dois ajouter un "iVar" depuis mon contrôleur auquel je peux lier le UITableView dans IB et ensuite définir la couleur du séparateur dans le viewDidload ?

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView setSeparatorColor:[UIColor blackColor]];
    return 65;
}

0 votes

Ajouter la variable et la connecter dans IB est la façon dont je l'ai toujours fait.

0 votes

Voilà ce à quoi je pensais. J'ai suivi un tutoriel qui n'utilisait pas iVar, mais qui se reposait simplement sur les appels de délégué et de source de données. Cependant, ils n'ont jamais accédé à la couleur du séparateur, c'est peut-être pour cela.

355voto

Helen Points 1436
- (void)viewDidLoad
{
   [self.tableView setSeparatorColor:[UIColor myColor]];
}

Vous aurez besoin du self. pour y accéder, n'oubliez pas.

Swift 4.2

tableView.separatorColor = UIColor.red

0 votes

Salut Helen, est-ce que ça y accède sans avoir besoin d'ajouter une @property, on dirait que oui?

1 votes

C'est vrai. Vous héritez de UITableViewController, qui le déclare comme propriété. Par conséquent, il hérite des méthodes d'accessibilité/mutateurs de la superclasse, vous pouvez donc le régler en conséquence. Cependant, vous ne pouvez pas accéder directement à la variable d'instance (probablement une bonne chose). La raison pour laquelle vous pouvez le définir dans une méthode déléguée est parce qu'il s'agit d'un paramètre de la méthode appelée.

2 votes

Ou si vous préférez : self.tableView.separatorColor = UIColor.clearColor;

58voto

Myxtic Points 889

Maintenant, vous devriez être capable de le faire directement dans l'IB.

Je ne suis pas sûr, cependant, que cela était disponible lorsque la question a été initialement publiée.

entrer la description de l'image ici

24voto

alino-91 Points 30

Version Swift :

remplacer fonction viewDidLoad() {
    super.viewDidLoad()

    // Attribuez votre couleur à cette propriété, par exemple ici nous attribuons la couleur rouge.
    tableView.separatorColor = UIColor.redColor()
}

12voto

Nitesh Borad Points 242

Essayez + (instancetype)appearance de UITableView :

Objective-C :

[[UITableView appearance] setSeparatorColor:[UIColor blackColor]]; // définissez votre couleur souhaitée à la place de "[UIColor blackColor]"

Swift 3.0 :

UITableView.appearance().separatorColor = UIColor.black // définissez votre couleur souhaitée à la place de "UIColor.black"

Remarque : La modification se reflétera dans toutes les tables utilisées dans l'application.

5voto

Giang Points 1208

Swift 3, version xcode 8.3.2, storyboard->choisissez votre vue de tableau->inspecteur->Séparateur.

Swift 3, version xcode 8.3.2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X