web-dev-qa-db-fra.com

UITableView, Couleur du séparateur où définir?

J'ai ajouté un UITableView dans IB et définir le "délégué" et le "source de données" et tout fonctionne bien. Ce que je voulais faire ensuite, c’était de changer la couleur du séparateur, mais la seule façon de le faire était d’ajouter la méthode à l’un des rappels des délégués. Y at-il un meilleur endroit où je devrais placer ceci?

Je n'ai pas cela pour le moment, mais je pensais que je devrais peut-être ajouter un "iVar" de mon contrôleur que je pourrais relier au UITableView dans IB, puis définir la couleur du séparateur dans le viewDidload?

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView setSeparatorColor:[UIColor blackColor]];
    return 65;
}
152
fuzzygoat
- (void)viewDidLoad
{
   [self.tableView setSeparatorColor:[UIColor myColor]];
}

J'espère que cela vous aidera - vous aurez besoin du self. pour y accéder, rappelez-vous.

Swift 4.2

tableView.separatorColor = UIColor.red
313
Helen

Vous devriez maintenant pouvoir le faire directement dans l'IB.

Pas sûr cependant, si cela était disponible lorsque la question a été postée à l'origine.

enter image description here

55
Myxtic

Swift version:

override func viewDidLoad() {
    super.viewDidLoad()

    // Assign your color to this property, for example here we assign the red color.
    tableView.separatorColor = UIColor.redColor()
}
24
King-Wizard

Essayez + (instancetype) apparence de UITableView:

Objective-C:

[[UITableView appearance] setSeparatorColor:[UIColor blackColor]]; // set your desired colour in place of "[UIColor blackColor]"

Swift 3.0:

UITableView.appearance().separatorColor = UIColor.black // set your desired colour in place of "UIColor.black"

Remarque: Le changement s'appliquera à toutes les tables utilisées dans l'application.

11
Nitesh Borad

Swift 3, version xcode 8.3.2, storyboard-> choisissez votre tableau Affichage-> inspecteur-> séparateur.

Swift 3, xcode version 8.3.2

2
Giang

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

 self.tableView.separatorColor = UIColor.redColor()

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

ATTENTION: Vous devez savoir qu’il existe 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

           //Other colors you can change here
           // 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
           //Other colors you can change here
           //footerView.backgroundColor = myColor
           //footerView.contentView.backgroundColor = myColor
        }
    }

J'espère que ça aide!

2
ezefire