web-dev-qa-db-fra.com

Ligne de séparation UITableView

Comment puis-je modifier la ligne de séparation qui apparaît à la fin de chaque cellule dans UITableView? Je souhaite obtenir une image de type séparateur fin. 

Définissez la separatorStyle de la vue de table sur UITableViewCellSeparatorStyleNone. Ajoutez votre image de séparation en tant que sous-vue à chaque cellule et définissez le cadre correctement.

88
Felix

Essaye ça

Objectif c

  [TableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];

  [TableView setSeparatorColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"[email protected]"]]];

Rapide

    tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
    tableView.separatorColor = UIColor(patternImage: UIImage(named: "YOUR_IMAGE_NAME")!)
56
Sakshi

D'abord, vous pouvez écrire le code:

{    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];}

après ça 

{    #define cellHeight 80 // You can change according to your req.<br>
     #define cellWidth 320 // You can change according to your req.<br>

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath
    {
         UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"seprater_line.png"]];
        imgView.frame = CGRectMake(0, cellHeight, cellWidth, 1);
        [customCell.contentView addSubview:imgView];
         return  customCell;

     }
}
29
Tom Sawyer

Définissez la couleur du séparateur à modeler avec votre image.

en viewDidLoad:

self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mySeparatorImage"]];
7
Denis Krivitski

Mon projet est basé sur iOS 7 Cela m'aide à 

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

Puis mettez une sous-vue dans la cellule en tant que séparateur!

5
SeanChense

Vous pouvez ajouter un UIImageView dont la hauteur est égale à 1 point et la largeur du cadre de la cellule, puis définir son origine sur le coin inférieur gauche de la cellule.

4
Aurum Aquila

Essaye ça: 

UIImageView *separator = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]];
[cell.contentView addSubview: separator];

C'est un exemple de la façon dont j'ai réussi à le faire fonctionner.

N'oubliez pas de définir le style de séparateur pour la vue Table sur aucun.

4
stephen

Ceci est certainement aider. Travail. mais définissez le séparateur "none" de l'inspecteur d'attributs . Écrivez le code suivant dans cellForRowAtIndexPath method

 UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0,           
 cell.contentView.frame.size.height - 1.0,      
 cell.contentView.frame.size.width, 1)];

    lineView.backgroundColor = [UIColor blackColor];
    [cell.contentView addSubview:lineView];
2
Mr.Javed Multani

Swift 3/4

Ligne de séparation personnalisée, placez ce code dans une cellule personnalisée qui est une sous-classe de UITableViewCell (ou dans CellForRow ou WillDisplay TableViewDelegates pour une cellule non personnalisée):

let separatorLine = UIView.init(frame: CGRect(x: 8, y: 64, width: cell.frame.width - 16, height: 2))
separatorLine.backgroundColor = .blue
addSubview(separatorLine)

dans la méthode viewDidLoad:

tableView.separatorStyle = .none
1
Sevy11

Vous avez 2 options pour changer le style de séparateur d'une uitableview si vous voulez changer les options par défaut qui ne sont pas des séparateurs, une ligne continue ou une ligne gravée.

  1. Le plus simple consiste à inclure une image d'arrière-plan de ligne de séparation dans chaque vue de cellule. Vous pouvez alors vérifier où se trouve votre cellule dans la vue tableau pour appliquer la bonne image d’arrière-plan qui vous donnera une ligne de séparation au-dessus ou au bas de la cellule.

    Définissez le style de séparateur sur none dans le viewDidLoad de votre vue de table:

    [self.tableView setSeparatorStyle: UITableViewCellSeparatorStyleNone];

    Définissez votre image d'arrière-plan dans la fonction tableView (UITableViewCell *): (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *)

     UIImage* yourBgImg = [[UIImage imageNamed:@"bgImage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)];
    

    cell.backgroundView = [[UIImageView alloc] initWithImage: yourBgImg];

    vérifiez la position de votre cellule dans la section avec les éléments suivants:

    NSInteger sectionRows = [tableView numberOfRowsInSection: [indexPathsection]]; NSInteger row = [indexPath row];

  2. Ajoutez la ligne de séparation en tant que cellule. Je trouve un post récemment pour cela ici: http://www.dimzzy.com/blog/2012/01/separator-cells-for-uitableview/#disqus_thread
0
tiguero

Voici comment procéder via le storyboard dans XCode 10.2.1. La valeur par défaut du séparateur est default qui est la ligne. Réglez-le sur none pour supprimer la ligne.

tableview_separator

0
Braden Holt

vous pouvez essayer ci-dessous:

UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)];
separator.backgroundColor = myColor;
[cell.contentView addSubview:separator];

ou

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]];
   imageView.frame = CGRectMake(0, 100, 320, 1);
   [customCell.contentView addSubview:imageView];

   return customCell;
}
0
saraman

Le moyen le plus simple d’ajouter une ligne de séparation sous chaque cellule peut être effectué dans le storyboard lui-même. Sélectionnez d’abord la table, puis dans l’inspecteur d’attributs, sélectionnez la propriété ligne de séparation comme ligne unique. Après cela, sélectionnez le séparateur à personnaliser et mettez à jour le gauche pour qu'il soit 0 à partir de la gauche.

Exemple

0
puneeth

Voici un autre moyen d'ajouter une ligne de séparation personnalisée à une UITableView en créant une CALayer pour l'image et en utilisant celle-ci comme ligne de séparation.

// crée un CALayer pour l'image de la ligne de séparation

CALayer *separator = [CALayer layer];
separator.contents = (id)[UIImage imageNamed:@"myImage.png"].CGImage;
separator.frame = CGRectMake(0, 54, self.view.frame.size.width, 2);
[cell.layer addSublayer:separator];
0
ciara staggs