Xcode: ajouter une page d’attente de chargement dans une vue

mercredi 26 juin 2013

Voici un exemple de code qui permet d’appeler une page d’attente de chargement qui se met en place dans une vue, utile par exemple pour faire partienter l’utilisateur lors du chargement en JSON d’une liste dans une tableView:

-(void) launchLoading{
    spinner = [[UIActivityIndicatorView alloc]
               initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    UIView * parentview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height)];
    parentview.backgroundColor = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.7];
    spinner.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
    spinner.hidesWhenStopped = YES;
    parentview.tag = 7;
    [self.view addSubview:parentview];
    [self.view addSubview:spinner];
    [spinner startAnimating];
}

-(void) closeLoading{
    [spinner stopAnimating];
    for (UIView *subview in [self.view subviews]) {
        if (subview.tag == 7) {
            [subview removeFromSuperview];
        }
    }
}

La première fonction créé un layer noir au dessus de notre vue avec une opacité et un UIActivityIndicatorView qui indique que la page est en train de se charger.
On ajoute la propriété tag dans la vue pour pouvoir la retiré lors du closeLoading.

Voici le résultat obtenu: UIActivityIndicatorView

Tags: Loader , TableView , UIActivityIndicatorView