J'ai un UITableView personnalisé, les cellules ont une couleur d'arrière-plan différente (définie dans un backgroundView personnalisé). Cependant, la couleur d'arrière-plan est uniquement appliquée dans la cellule, mais pas étendu sur la zone d'insertion du séparateur. Comme vous pouvez le voir sur la capture d'écran, une zone blanche se trouve à gauche du séparateur coloré.
Comment pouvons-nous changer la couleur de cette ligne blanche? Nous souhaitons faire "disparaître" la ligne en lui donnant la même couleur que l'arrière-plan de la cellule. Merci!
Définir la couleur d'arrière-plan de la cellule sur celle de la couleur d'arrière-plan de contentView semble donner les meilleurs résultats.
cell.backgroundColor = cell.contentView.backgroundColor;
Cela gérera les cas où la couleur de l'accessoire est également mauvaise.
Donc, je viens d'avoir ce problème moi-même, et c'est étrange parce que cela semble bien fonctionner sur certaines vues de table. Je suppose que la couleur grise que vous utilisez est la couleur d'arrière-plan de votre tableview. Sinon, cette solution peut ne pas fonctionner.
Il semble que les cellules dans iOS 7 n'identifient pas toujours la couleur d'arrière-plan de la vue tableau lorsqu'un séparateur est présent. Vous devez donc définir manuellement l'arrière-plan de la cellule sur clearColor. Fait intéressant, définir cette valeur dans les story-boards 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 pour ressembler à iOS 6. S'il vous plaît essayez mon code ci-dessous. Vous serez surpris
tableView.separatorColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
NSString *iosversion = [[UIDevice currentDevice] systemVersion];
int version = [iosversion intValue];
if(version>6)
{
tableView.separatorInset = UIEdgeInsetsZero;
}
Swift 3+:
tableView.separatorInset = UIEdgeInsets.zero
Utilisez l'image pour le séparateur. C'est le seul moyen facile d'obtenir le résultat attendu. Pour ios 7 dans xib, nous avons la propriété Edge insect, que vous pouvez utiliser.
Allez dans le storyboard> Inspecteur d'attributs> Inserts de séparateur, puis sélectionnez Personnalisé et modifiez la coordonnée gauche de 15 à 0 ., Ce sera Terminé.
Dans le générateur Interface de UITableViewCell, définissez l'attribut «arrière-plan» pour qu'il soit clair (ou autre), puis dans la vue Contenu, définissez l'attribut «arrière-plan» également et le problème devrait disparaître.