Je veux un espace entre deux cellules dans la vue tableau,
Je veux une cellule comme celle-ci,
Comment puis-je faire ça ?
Je veux un espace entre deux cellules dans la vue tableau,
Je veux une cellule comme celle-ci,
Comment puis-je faire ça ?
Vous ne pouvez pas définir la distance entre les cellules directement, mais vous pouvez définir la hauteur de l'en-tête dans la section pour obtenir le même résultat.
1.définir le nombre de cellules dont vous avez besoin comme sections :
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 3; // in your case, there are 3 cells
}
2.retourner seulement 1 cellule pour chaque section
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
3.définir la hauteur de l'en-tête dans la section pour définir l'espace entre les cellules
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 10.; // you can have your own choice, of course
}
4.définir la couleur d'arrière-plan de l'en-tête à une couleur claire, de sorte qu'il ne sera pas bizarre
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] init];
headerView.backgroundColor = [UIColor clearColor];
return headerView;
}
La meilleure façon d'obtenir de l'espace entre deux cellules dans TableView, déclarez le nombre de sections que vous voulez dans la méthode déléguée de numberofsections de cette façon
Par exemple, vous avez un tableau de 10 objets
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [array count]; //array count returns 10
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;// this should be one because it will create space between two cells if you want space between 4 cells you can modify it.
}
Le point important est que dans la méthode de délégation cellForRowAtIndexPath vous devez utiliser indexpath.section mais pas indexpath.row.
cell.textLabel.text=[NSString stringWithFormat:@"%@",[array objectAtIndex:indexPath.section]];
Il s'agit de vérifier l'espace entre deux cellules dans votre tableau. Bonne lecture !
Mais comment allez-vous maintenir ce tableau que nous donnons dans le cellforrowindexpath ....i suis confronté au problème que mon chaque cellule imprimant le même élément dans chaque ligne de section. Une idée ?
@PavanMore : Quel est votre scénario exact ? Il est facile de maintenir un tableau. Il suffit de déclarer la propriété de NSArray et de l'initialiser. Ensuite, en fonction de cellForRowIndexpath, c'est-à-dire de l'index de la cellule, il suffit de changer le texte de la cellule. C'est facile... si votre scénario est différent, veuillez l'élaborer.
Si vous avez à la fois des sections et des rangées multiples, essayez de cette façon stackoverflow.com/a/29258935/2446178
La réponse par sections multiples pourrait fonctionner, mais elle est extrêmement fragile et ne permet pas de réel sections. Au lieu de cela, vous devez créer une cellule personnalisée, ou un prototype de cellule personnalisée qui comporte simplement un espace en bas et/ou en haut.
Utilisez vos jambes de force et vos ressorts dans IB pour maintenir cet écart uniforme, et utilisez heightForRowAtIndexPath pour renvoyer une hauteur qui inclut l'écart.
Ce n'est pas cassant - je ne pense pas - mais c'est un peu haché. J'ai intégré l'espace dans la cellule de ma solution avant de trouver cette page, mais cela présente aussi des inconvénients. Dans mon cas, cela rend la conception de la cellule beaucoup plus compliquée qu'elle ne le serait si l'espace était géré par le tableau. A VOUS DE VOIR.
Les actions d'édition ont l'air merdiques, la pseudo marge est en fait une partie de la cellule, donc dans le cas où vous avez des actions d'édition, la vue de l'action semble être plus haute que la vue.
Les modes de sélection et d'édition par défaut ont l'air mauvais, mais ils sont facilement modifiables...
Objectif - C
UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 3)];/// change size as you need.
separatorLineView.backgroundColor = [UIColor whiteColor];// you can also put image here
[cell.contentView addSubview:separatorLineView];
Swift 3 (La même chose fonctionnera pour Swift 4 aussi)
var separatorLineView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 3))
/// change size as you need.
separatorLineView.backgroundColor = UIColor.white
// you can also put image here
cell.contentView.addSubview(separatorLineView)
Ça a marché pour moi.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Vous devez créer une cellule personnalisée et pour cela veuillez vous référer à Lien 1 y Lien 2
0 votes
Regardez ma réponse en bas de page.