Changer la couleur de la zone d’encart dans le séparateur UITableView

J’ai un UITableView personnalisé, les cellules ont une couleur de fond différente (définie dans un backgroundView personnalisé). Cependant, la couleur d’arrière-plan n’est appliquée qu’à l’ intérieur de la cellule, mais ne s’étend pas à la zone d’encart du séparateur. Comme vous pouvez le voir sur la capture d’écran, il y a une zone blanche à gauche du séparateur coloré.

Comment pouvons-nous changer la couleur de cette ligne blanche? Nous aimerions que la ligne “disparaisse” en la plaçant dans la même couleur que l’arrière-plan de la cellule. Merci!

entrer la description de l'image ici

Définir la couleur d’arrière-plan de la cellule sur la même couleur que l’arrière-plan de contentView semble donner les meilleurs résultats.

cell.backgroundColor = cell.contentView.backgroundColor; 

Cela permettra de gérer les cas où l’accessoireView est également la mauvaise couleur.

J’ai donc eu ce problème moi-même, et c’est étrange car il semble fonctionner correctement sur certaines tables de vues. Je suppose que la couleur grise que vous utilisez est la couleur de fond de votre tableview. Sinon, cette solution peut ne pas fonctionner.

Il semble que les cellules d’iOS 7 ne prennent pas toujours la couleur d’arrière-plan de tableview lorsqu’un encart de séparateur est présent. Vous devez donc définir manuellement l’arrière-plan de la cellule sur clearColor. Fait intéressant, la définition de cette valeur dans les storyboards ne fonctionnait pas pour moi, je devais le faire en code. Ajoute ça:

 cell.backgroundColor = [UIColor clearColor]; 

lorsque vous configurez la cellule dans cette fonction de délégué:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

C’est la valeur par défaut dans iOS 7. Mais vous pouvez le changer à la manière d’iOS 6. Veuillez essayer mon code ci-dessous. Vous serez surpris:

  tableView.separatorColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0]; NSSsortingng *iosversion = [[UIDevice currentDevice] systemVersion]; int version = [iosversion intValue]; if(version>6) { tableView.separatorInset = UIEdgeInsetsZero; } 

Swift 3+:

 tableView.separatorInset = UIEdgeInsets.zero 

Utilisez l’image pour séparateur. C’est le seul moyen facile d’obtenir le résultat escompté. Pour ios 7 dans xib, nous avons des propriétés d’insectes de bord que vous pouvez utiliser.

Accédez au storyboard> Inspecteur d’atsortingbuts> Séparateurs, puis sélectionnez cutom et modifiez la coordonnée gauche de 15 à 0. elle sera terminée.

Dans Interface Builder sur UITableViewCell, définissez l’atsortingbut “background” pour qu’il soit clair (ou autre), puis définissez l’atsortingbut “background” sur la vue de contenu et le problème devrait disparaître.