8
votes

IPhone SDK: Ajout d'un uiactivitéIndicatorView à un UIableViewCell

Pourquoi la cellule ne montre-t-elle rien dans ce code:

UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[cell.imageView addSubview:spinner];
[spinner startAnimating];
cell.textLabel.text=@"Carregando...";
[spinner release];


2 commentaires

Vous réglez le cadre de l'indicateur d'activité? Quelque chose comme spinner.frame = cgrectument (0, 0, 30, 30)? Vous pouvez également vérifier le cadre et la visibilité de la cellule.ImageView elle-même.


Oui, j'ai créé les deux, le cadre de la spinner et la configuration de sa visibilité ... mais j'ai trouvé la réponse comme je l'ai décrite ci-dessous ... Merci pour l'aide ..!


3 Réponses :


3
votes

Je pense que la Cell's ImageView aura probablement un rectangle de taille zéro, car vous n'avez pas mis une photo dedans. Donc, la spinner est à l'intérieur mais invisible.

Ainsi, au lieu de mettre le fileur dans l'imageView, mettez-le simplement dans la cellule ... xxx

vous pouvez aussi faire < / p> xxx

pour mettre la fileuse à l'extrême droite de la cellule.


2 commentaires

L'Acessororyview a très bien fonctionné ... mais le spinner.frame n'est pas ... J'ai trouvé une solution qui consiste à créer un uiimage "carré blanc" et qu'ils mettent comme cell.Imageview.Image ... leur apparaît. .. Mais merci pour votre aide ..!


Désolé pour ça; J'aurais dû le tester moi-même plutôt que de faire confiance à l'autre commentateur!



9
votes

J'ai trouvé la réponse ...

David Maymudes était partièrement correct ... il est nécessaire d'avoir un "fond" à la cellule.ImageView ... mais doit être une image, pas seulement un cadre. Donc, créez simplement un uiimage comme un "fond blanc" et défini dans cellule.ImageView.Image. Le code sera le suivant: p>

 UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] 
        initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
 UIImage *whiteback = [[UIImage alloc] initWithContentsOfFile:@"whiteback.png"];
 cell.imageView.image = whiteback;
 [cell.imageView addSubview:spinner];
 [spinner startAnimating];
 cell.textLabel.text=@"Carregando...";
 [whiteback release];
 [spinner release];


0 commentaires

9
votes

Une légère modification de la méthode de Thiago:

Je pense que l'ajout du spinner directement à la vue de la cellule ressentie un peu de hacky, j'ai donc utilisé un png transparent 1x1 comme vue sur l'image et le redimensionné de la taille de ma fileuse est: xxx

qui donne une cellule qui ressemble à ceci:

 cellule de chargement


0 commentaires