Je veux faire quelque chose d'assez simple avec mon UITableView : Je veux ajouter un UIActivityIndicatorView à l'en-tête d'une section, et le faire s'animer ou disparaître quand je le souhaite.
Je n'ai eu aucun problème à ajouter l'UIActivityIndicatorView à la vue de l'en-tête en utilisant tableView:viewForHeaderInSection :
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 60.0)];
// create the title
UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(15.0, 12.0, 310.0, 22.0)];
headerLabel.text = @"some random title here";
[customView addSubview:headerLabel];
[headerLabel release];
// Add a UIActivityIndicatorView in section 1
if(section == 1)
{
[activityIndicator startAnimating];
[customView addSubview:activityIndicator];
}
return [customView autorelease];
}
activityIndicator est une propriété de la classe de mon contrôleur. Je l'alloue dans la méthode viewDidLoad :
- (void)viewDidLoad
{
(...)
activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(200, 10, 25, 25)];
}
De cette façon, je peux lui envoyer des messages (comme -startAnimating ou -stopAnimating) quand je le souhaite. Le problème est que l'indicateur d'activité disparaît dès que je fais défiler la tableView (je suppose que c'est parce que la méthode tableView:viewForHeaderInSection : est appelée une seconde fois).
Comment puis-je ajouter un activityIndicatorView à l'en-tête de la section et être en mesure de lui envoyer des messages par la suite ? (sans que l'indicateur d'activité ne disparaisse lorsque je fais défiler la page vers le bas, bien entendu)
Merci beaucoup !