Mon problème est le suivant : J'assigne un tableau mutable au cellForRowAtIndexPath
afin d'afficher chaque objet du tableau dans une cellule. Jusqu'ici tout va bien, les cellules sont affichées comme prévu. Maintenant je veux afficher (selon une condition) un UILabel
dans la première cellule, de sorte que les autres objets du tableau mutable seront déplacés vers la deuxième cellule, puis la troisième, etc. Le problème est que, lorsque je teste cette condition, et qu'elle est vraie, l'objet UILabel
est affiché dans la première cellule avec le premier objet . Donc en fait, deux éléments sont dans la même cellule, ce qui n'est pas ce que j'attends. Je veux (lorsque la condition est vraie) décaler tous les éléments, de sorte qu'ils soient affichés à partir de la deuxième cellule afin de laisser la première cellule à l'état d'attente. UIlabel
.
Mon code pertinent qui ne me donne pas ce que j'attends, est le suivant :
- (UITableViewCell*)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:@"any-cell"];
// Add and display the Cell
cell.tag = [indexPath row];
NSLog(@"cell.tag= %i",cell.tag);
//test the condition, if it's ok, then add the label to the first cell
if ([self isNoScoreLabelDisplayed] && cell.tag==0) {
UILabel *lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 220, 50)];
[lbl setBackgroundColor:[UIColor greenColor]];
[cell addSubview:lbl];
}
cell.tag = [self isNoScoreLabelDisplayed]?[indexPath row]+1:[indexPath row];//here i wanted to shift the tags in case the condition is true, so that all the elements will be displayed from the second cell. But seems not doing what i want :(
//
if (indexPath.row < cellList.count) {
[cell addSubview:[cellList objectAtIndex:[indexPath row]]];//cellList is the mutable array from which i get all the elements to display in the cells
}else{
[cell addSubview:nextButton];
}
return cell;
}
Est-ce que j'ai manqué quelque chose dans ma logique ? Merci d'avance.