2010-04-26 6 views
1

Je travaille sur un UITableView groupé, avec 4 sections avec une ligne par section, et un comportement étrange avec les cellules. Les cellules sont simples UITableViewCells, mais la hauteur des cellules est d'environ 60 - 80 pixels. Maintenant, la vue de table rend les cellules correctes avec des coins arrondis, mais quand je sélectionne les cellules, elles apparaissent en bleu et rectangle. Je ne sais pas pourquoi les cellules se comportent comme ça, parce que j'ai un autre UITableView groupé avec des cellules personnalisées et une hauteur de 88 pixels et ces cellules fonctionnent comme elles le devraient.UITableViewCell et comportement étrange dans groupable UITableView

Si je change la hauteur à la hauteur par défaut de 44 pixels, les cellules se comportent comme le devrait. Est-ce que quelqu'un est au courant de ce comportement et quelle est la cause?

Comme je l'ai mentionné, je ne fais pas de trucs fantaisie J'utilise par défaut UITableViewCells dans un UITableView groupé statique avec 4 sections avec 1 ligne dans chaque section.

evangelion2100

Edit: OK, voici les parties pertinentes de mon code. Parce que je n'utilise qu'un nombre fixe de cellules pour cette tableview je stocke les cellules dans un NSMutableArray 2d. J'ai mis en place les cellules dans la méthode - (void) viewDidLoad et les méthodes déléguées respectives accèdent au tableau avec les cellules stockées.

Je ne vois rien qui puisse causer ce comportement étrange des cellules si elles sont sélectionnées.

Éditez2: Désolé la raison pour laquelle je stocke les cellules dans un tableau n'est pas seulement parmi les cellules. Si la vue change et que UITableView réapparaît, les cellules seront échangées avec des cellules personnalisées. C'est la vraie raison du stockage des cellules. C'est comme une sorte de "Ajouter un nouvel email" -Type de comportement, comme dans l'application de contact de l'iPhone.

-(void)viewDidLoad { 
    // set up the AccompanyingLecture cell 
UITableViewCell *accompanyingLectureCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"AccompanyingLectureCell"]; 
accompanyingLectureCell.textLabel.textAlignment = UITextAlignmentCenter; 
accompanyingLectureCell.detailTextLabel.textAlignment = UITextAlignmentCenter; 
accompanyingLectureCell.textLabel.text = NSLocalizedString(@"New Accompanying Lecture", @""); 
accompanyingLectureCell.detailTextLabel.text = NSLocalizedString(@"Lecturer, Time, Location, etc.", @""); 
accompanyingLectureCell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
accompanyingLectureCell.frame = CGRectMake(0, 0, 320, 82); 

// initialize datasource for all four sections 
datasource = [[NSMutableArray alloc] initWithObjects:[NSMutableArray arrayWithObject:[lecturerCell autorelease]], [NSMutableArray arrayWithObject:[lectureDetailsCell autorelease]], [NSMutableArray arrayWithObject:[timeAndLocationCell autorelease]], [NSMutableArray arrayWithObject:[accompanyingLectureCell autorelease]], nil]; 

}

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

return [[datasource objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]; 

}

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
CGRect currentFrame = [[[datasource objectAtIndex: indexPath.section] objectAtIndex:indexPath.row] frame]; 
return currentFrame.size.height; 

}

+0

Il peut être utile de publier votre méthode '-tableView: cellForRowAtIndexPath:' et toute autre méthode déléguée qui touche les cellules, par exemple '-tableView: heightForRowAtIndexPath:' –

Répondre

0

Qu'est-ce qui se passe si vous revenez simplement 82 dans la méthode heightForRowAtIndexPath et ne définissez pas le cadre de la cellule viewDidLoad?

+0

Il n'y a pas de changement. Si je sélectionne la cellule, il devient rectangle. En fait, j'ai essayé différentes hauteurs de cellules pour voir si cela fonctionnerait ou non. Mais seulement avec la hauteur de la cellule 44 pixels, le comportement étrange n'apparaît pas. – user325746