2013-12-09 9 views
5

Ich lade einen HTML-Text in UIWebView. Die Seite wird perfekt mit Standardzoom gleich 1.0 geladen. Die Eigenschaft scalesPageToFit von UIWebView ist auf YES gesetzt, sodass die Seite mit Pinch-Gesten vergrößert/verkleinert werden kann. Was ich tun möchte, ist, den ursprünglichen Inhalt des WebView-Inhalts auf 2.0 zu setzen.Nicht animierte Änderung von UIWebView Zoom verwischt den Inhalt

habe ich versucht, diesen Code:

webView.scrollView.zoomScale = 2.0; 

Aber der Inhalt ist verschwommen, und Webansicht den Inhalt ohne die Unschärfe wieder machen, sobald ich die Prise Zoomen mit Geste beginnen.

FYI, die animierte Version des Setzers:

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

zeigen der Inhalt Text korrekt mit dem richtigen Zoom und nicht verschwommen, aber Ich will nicht die Änderungen des Zooms animieren.

Antwort

0

Wenn Sie die Animation nicht sehen möchten, können Sie Null für die Animationszeit angeben. Der folgende Code wird Ihnen helfen.

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

Eine weitere Beratung wird mit CGAffineTransformMakeScale Methode, um die Webansicht zu skalieren.

0

Ich wusste nicht, dass das Hinzufügen von Animation den Unschärfeeffekt verschwinden lassen kann, also danke für Ihren Beitrag, es war hilfreich.

Ich suche die gleiche Lösung, die Sie aber leider die Antwort von ondermerol nicht für mich arbeiten.

ich fix, dass Delegierten von UIScrollView mit ->UIScrollViewDelegate


1) BOOL Eigenschaft in der Klasse

@property (nonatomic) BOOL webViewWasForceZooming; 

2) In viewDidLoad In Verbindung Ihr Delegierter und setzen Sie den BOOL-Wert

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

3) Setzen Sie neue Maßstab

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

4) die Webansicht anzeigen zurück nach

#pragma mark - UIScrollViewDelegate 

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

Meine Lösung war nicht perfekt, Zoomen, weil die Animation Dauer nicht null ist, aber um den Zoom zu ändern, nachdem die Webansicht geladen wurde, ist es nett.

Ich hoffe, es wird jemandem helfen.

Verwandte Themen