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.

4voto

ezefire Points 590

Si vous souhaitez simplement définir la même couleur pour chaque séparateur et qu'elle est opaque, vous pouvez utiliser:

 self.tableView.separatorColor = UIColor.redColor()

Si vous souhaitez utiliser des couleurs différentes pour les séparateurs ou effacer la couleur du séparateur ou utiliser une couleur avec de l'alpha.

SOYEZ PRUDENT: Vous devez savoir qu'il y a une backgroundView dans le séparateur qui a une couleur par défaut.

Pour le changer, vous pouvez utiliser ces fonctions:

    func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
        if(view.isKindOfClass(UITableViewHeaderFooterView)){
            var headerView = view as! UITableViewHeaderFooterView;
            headerView.backgroundView?.backgroundColor = myColor

           //D'autres couleurs que vous pouvez changer ici
           // headerView.backgroundColor = myColor
           // headerView.contentView.backgroundColor = myColor
        }
    }

    func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
        if(view.isKindOfClass(UITableViewHeaderFooterView)){
            var footerView = view as! UITableViewHeaderFooterView;
            footerView.backgroundView?.backgroundColor = myColor
           //D'autres couleurs que vous pouvez changer ici
           //footerView.backgroundColor = myColor
           //footerView.contentView.backgroundColor = myColor
        }
    }

J'espère que cela aide!

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