Vai al contenuto

Mostrare una webView solo dopo che la pagina si è caricata...


Messaggi raccomandati

no non è difficile

allora nell'header dichiara

	UIActivityIndicatorView *activityIndicator;

poi se la pagina web viene caricata all'entrata della view allora metti il seguente codice all'interno di viewDidLoad:

		activityIndicator = [[uIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
	activityIndicator.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
	activityIndicator.center = self.view.center;
	[self.view addSubview: activityIndicator];

poi nei metodi delegati della webView inserisci il comando per far partire e fermare l'activityIndicator

- (void)webViewDidStartLoad:(UIWebView *)webView
{
[uIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[activityIndicator startAnimating];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[uIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[activityIndicator stopAnimating];
}

ti ho lasciato anche la riga di codice

[uIApplication sharedApplication].networkActivityIndicatorVisible = YES

che serve per mostrare l'activityIndicator proprio dell'iPhone (la rotellina che gira vicino al carrier per intenderci)

fammi sapere se è tutto ok

ciao

bublen :ciao:

Hai un'idea per un'app ma non sai programmare? Contattami. Trovi gli indirizzi sul mio sito: http://www.2ciphonedevelopers.com

Link al commento
Condividi su altri siti

  • Admin

Oops, non uno molto gli IM, in caso ti scrivo via email così mi dai il nome :-)

A prop, ti sconsiglio di mettere indirizzo email in chiaro nel forum, ti riempi di spam!

Ora sto cercando di capire se è possibile fare comparire la webview con effetto dissolvenza, dici sia possibile?

Link al commento
Condividi su altri siti

mmm hai ragione ho tolto la mail. ti ho risposto via mail dicendoti di msn perchè ho visto prima la mail rispetto al post sul forum :ciao:

allora per l'effetto dissolvenza dovresti lavorare sulla proprietà alpha. la imposti a 0 e ogni tot l'aumenti di 0.1 per esempio.

come al solito è più facile mostrare il codice che spiegarlo a parole. ti lascio un piccolo esempio: http://www.mediafire.com/?ozthmnv1wt2

nell'esempio uso una UIImageView che tanto risponde alle proprietà della UIView come la UIWebView

ciao bublen :ghghgh:

Hai un'idea per un'app ma non sai programmare? Contattami. Trovi gli indirizzi sul mio sito: http://www.2ciphonedevelopers.com

Link al commento
Condividi su altri siti

  • Admin

Sono riuscito a implementare quasi tutto!

Peccato che la comparsa mi si fermi a trasparente! :ghghgh:

Forse ho sbagliato qualcosa nell'ultima riga (infatti ancora non conosco i selectors)

-(void) webViewDidFinishLoad: (UIWebView *) webView {

webView.hidden = NO;


alphaImage += 0.1;

if (alphaImage<=1) {
	webView.alpha = alphaImage;
	[self performSelector:@selector(webView) withObject:nil afterDelay:0.1];
}
NSLog (@"OK");

}

Link al commento
Condividi su altri siti

mmmm perchè metti selector(webView) ?

nel selector devi mettere l'azione che vuoi che si ripeta

quindi in questo caso dovresti mettere selector(webViewDidFinishLoad:)

comunque ti consiglio di fare una void apposita. potresti fare una cosa del genere:

-(void) webViewDidFinishLoad: (UIWebView *) webView {

webView.hidden = NO;
[self mostraWebViewConDissolvenza];

}

-(void)mostraWebViewConDissolvenza{

alphaImage += 0.1;

if (alphaImage<=1) {
	webView.alpha = alphaImage;
	[self performSelector:@selector(mostraWebViewConDissolvenza) withObject:nil afterDelay:0.1];
}
NSLog (@"OK");

}

Hai un'idea per un'app ma non sai programmare? Contattami. Trovi gli indirizzi sul mio sito: http://www.2ciphonedevelopers.com

Link al commento
Condividi su altri siti

  • Admin

Funziona perfettamente grazie, ora ho anche capito meglio la funzione selector :mhh:

Domanda: e se volessi aspettare un attimo prima di cominciare a fare comparire la webView dopo che si è caricata, sarebbe possibile?

PS

Più che altro mi piacerebbe metterlo per evitare un piccolo flickering che compare immediatamente dopo che la pagina è stata carticata...

Link al commento
Condividi su altri siti

sì certo... la soluzione è sotto i tuoi occhi :mhh:

nella funzione webViewDidFinishLoad piuttosto che

[self mostraWebViewConDissolvenza]

fai

[self performSelector:@selector(mostraWebViewConDissolvenza) withObject:nil afterDelay:1];

così dopo un secondo parte la funzione di dissolvenza

Hai un'idea per un'app ma non sai programmare? Contattami. Trovi gli indirizzi sul mio sito: http://www.2ciphonedevelopers.com

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...