Ive a juste posé cette question Run code on background and get return codeUIAlertView bizarre avec UIActivityIndicator
Et j'ai utilisé un UIAlertView avec indicateur d'activité tout en faisant la tâche de fond, le code final:
-(void)isConnectedToInternet:(void (^)(BOOL))block
{
palert = [[UIAlertView alloc]initWithTitle:@"Comprobando conexión a internet" message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
[palert show];
if(palert != nil) {
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
indicator.center = CGPointMake(palert.bounds.size.width/2, palert.bounds.size.height-45);
[indicator startAnimating];
[palert addSubview:indicator];
}
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString:@"http://www.google.com/"]];
[request setHTTPMethod:@"HEAD"];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
if (block) {
[palert dismissWithClickedButtonIndex:0 animated:YES];
block(([httpResponse statusCode] == 200) ? YES : NO);
}
}];
Son même code que réponse acceptée avec un UIAlertView, juste après cela im montrant un nouveau UIViewController qui fait une chose similaire sur ViewDidLoad.
alerta = [[UIAlertView alloc]initWithTitle:@"Descargando..." message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
[alerta show];
if(alerta != nil) {
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
indicator.center = CGPointMake(alerta.bounds.size.width/2, alerta.bounds.size.height-45);
[indicator startAnimating];
[alerta addSubview:indicator];
}
j'utilisais le même code pour montrer UIAlertView avec indicateur d'activité depuis longtemps, la première alertview pour la connexion Internet de contrôle montre bien, mais le second ne ...
Je ne peux vraiment pas comprendre pourquoi le premier montre l'indicateur à l'intérieur d'alerView et le deuxième le montre en dehors de alertView si les deux ont exactement le même code.
Et cela ne se produit qu'après avoir ajouté un premier UIAlertView, avant d'ajouter que cela fonctionnait bien.
Im vraiment coincé sur ce que je ne peux pas trouver une solution.
Quelqu'un a une idée?
EDIT
solution Manière simple, je viens hardcode il.
Et oui, il semble que alert.frame n'est pas réglé, peut-être semblable à cette question: Question
indicator.center = CGPointMake(140, 70);
il suffit de définir le cadre de vue de l'indicateur avec dans l'image alertview – krishh
Il semble que vous ayez 'CGRectZero' comme' alerta.bounds' lorsque vous utilisez l'alerte pour la deuxième fois. Essayez de sous-classer 'UIAlertView' et placez le cadre d'indicateur d'activité à' layoutSubviews' à la place. –
Salut @ user2260916 vérifier ce [post] (http://stackoverflow.com/questions/4906726/how-can-i-do-uialertview-with-activity-indicator) vous permettra de résoudre votre problème, bonne chance –