2013-12-09 8 views
5

Sto caricando un testo HTML all'interno di UIWebView. La pagina si sta caricando perfettamente con lo zoom predefinito uguale a 1.0. La proprietà scalesPageToFit di UIWebView è impostata su SÌ, quindi la pagina potrebbe essere ingrandita/rimossa con gesti di pizzicamento. Quello che voglio fare è impostare lo zoom del contenuto della webView iniziale su 2.0.La modifica non animata dello zoom di UIWebView sfoca il contenuto

Ho provato questo codice:

webView.scrollView.zoomScale = 2.0; 

Ma il contenuto appare sfuocata, e vista web ri-renderizzare il contenuto senza la sfocatura non appena avvio il pinch zoom con il gesto.

Cordiali saluti, la versione animata del setter:

[webView.scrollView setZoomScale:2.0 animated:YES]; 

visualizza il testo contenuto in modo corretto, con zoom corretta e non offuscata, ma non voglio per animare i cambiamenti del zoom.

risposta

0

Se non si desidera visualizzare l'animazione, è possibile assegnare zero per il tempo di animazione. Sotto il codice ti aiuterà.

[UIView animateWithDuration:0.0 animations:^{ 
      webView.scrollView.zoomScale = 2.0;; 
     }completion:^(BOOL finished) { 
      //... 
     }]; 

Un altro consiglio sta usando il metodo CGAffineTransformMakeScale per scalare la WebView.

webView.transform = CGAffineTransformMakeScale(2, 2); 
0

Non sapevo che l'animazione aggiungendo può fare scomparire l'effetto di sfocatura, quindi ringrazio di per il tuo post, è stato utile.

che cerco la stessa soluzione che voi, ma purtroppo, la risposta di ondermerol non funziona per me.

I fix che l'utilizzo di delegato del UIScrollView ->UIScrollViewDelegate


1) Aggiungi proprietà BOOL nella classe

@property (nonatomic) BOOL webViewWasForceZooming; 

2) In viewDidLoad, collegare il tuo delegato e imposta il valore BOOL

self.webView.scrollView.delegate = self; 
self.webViewWasForceScrolling = NO; 

3) Impostare nuova scala

self.webView.hidden = YES; 
webViewWasForceZooming = YES; 
[self.webView.scrollView setZoomScale:2.0 animated:YES]; 

4) Mostra il WebView dopo lo zoom

#pragma mark - UIScrollViewDelegate 

    - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale 
    { 
     if (webViewWasForceZooming) { 
      webViewWasForceZooming = NO; 
      self.webView.hidden = NO; 
     } 
    } 

La mia soluzione non era perfetta perché la durata dell'animazione non è nullo, ma per cambiare lo zoom dopo aver caricato la webview, è bello.

Spero che possa aiutare qualcuno.

Problemi correlati