web-dev-qa-db-fra.com

Changer la couleur de la zone d'insertion dans le séparateur UITableView

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!

enter image description here

39
zavié

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.

48
Dave Wood

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
5
jzn

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
4
user2223516

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.

0
Ron

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é.

0
Ankit Jayaswal

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.

0
Tim Teece