0

Actuellement je travaille dans l'application iphone, en utilisant UIWebView (page Web montrée dans presentModelViewController) pour montrer la page Web sur l'écran, puis j'ajoute UIActivityIndicatorView pour montrer dans la demande d'url de chargement, mais le UIActivityIndicatorView n'a pas montré dans l'écran, j'ai essayé mon meilleur niveau, s'il vous plaît aidez-moi.Problème dans UIActivityIndicatorView dans iPhone?

Merci à l'avance

J'ai essayé:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    activity.frame=CGRectMake(140, 240, 40, 40); 
    [self.view addSubview:activity]; 

    web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; 
    web.delegate=self; 
    web.backgroundColor=[UIColor clearColor]; 
    NSURL *url = [NSURL URLWithString:@"http://wrwr.rww.com/erqrrq"]; 
    NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
    [web loadRequest:req]; 
    [self.view addSubview:web]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [activity stopAnimating]; 
} 

- (void)webViewDidStartLoad:(UIWebView *)webView 
{  
    [activity startAnimating]; 
} 
+2

Essayez d'ajouter la vue Web en premier et la vue d'activité en second, sinon la vue Web pourrait masquer la vue d'activité. –

+0

pouvez-vous essayer d'ajouter votre indicatore d'activité à webview comme: - [web addSubview: activité]; –

Répondre

0

Essayez ceci,

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; 
    web.delegate=self; 
    web.backgroundColor=[UIColor clearColor]; 
    NSURL *url = [NSURL URLWithString:@"http://wrwr.rww.com/erqrrq"]; 
    NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
    [web loadRequest:req]; 
    [self.view addSubview:web]; 

    activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    activity.frame=CGRectMake(140, 240, 40, 40); 
    [self.view addSubview:activity]; 
    [self.view bringSubviewToFront:activity]; 
} 
+0

S'il vous plaît voir la modification. Votre code ne fonctionne pas parce que votre indicateur d'activité est masqué par le webview. Placez l'indicateur d'activité au-dessus de la vue Web et apportez l'indicateur d'activité à l'avant pour résoudre ce problème. J'espère que cela vous aide. :) –

0

Define UIActivityIndicatorView après avoir défini UIWebView.

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 


     web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; 
     web.delegate=self; 
     web.backgroundColor=[UIColor clearColor]; 
     NSURL *url = [NSURL URLWithString:@"http://wrwr.rww.com/erqrrq"]; 
     NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
     [web loadRequest:req]; 
     [self.view addSubview:web]; 

    activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
     activity.frame=CGRectMake(140, 240, 40, 40); 
     [self.view addSubview:activity]; 
    } 
1

ajoutant votre activitiy Indicatore Voir à votre webView comme ceci: -

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
activity.frame=CGRectMake(140, 240, 40, 40); 


web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; 
web.delegate=self; 
web.backgroundColor=[UIColor clearColor]; 
NSURL *url = [NSURL URLWithString:@"http://wrwr.rww.com/erqrrq"]; 
NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
[web loadRequest:req]; 
[web addSubview:activity]; 
[self.view addSubview:web]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
[activity stopAnimating]; 
} 

- (void)webViewDidStartLoad:(UIWebView *)webView 
{  
[activity startAnimating]; 
} 
0

L'ordre dans lequel vous ajoutez les sous vues à la super vue est important. Le UIActivityIndicatorView est ajouté et le UIWebView le superpose. Si vous ajoutez le premier UIWebView, i.e.

[self.view addSubview:web]; 
[self.view addSubview:activity]; 

la UIActivityIndicatorView se superpose au UIWebView.

Questions connexes