2013-12-09 9 views
5

UIWebView内でHTMLテキストを読み込みます。デフォルトのズームは1.0です。ページは完全にロードされています。 UIWebViewのscalesPageToFitプロパティはYESに設定されているため、ページはピンチジェスチャーでズームイン/ズームアウトできます。 私がやりたいことは、最初のWebViewのコンテンツズームを2.0に設定することです。 UIWebViewのアニメーション化されていない変更はコンテンツをぼかします

私はこのコードを試してみました:

webView.scrollView.zoomScale = 2.0; 

をしかし、コンテンツがぼやけて見える、と私はジェスチャーでズームピンチを起動してWeb表示はすぐにぼかしなしでコンテンツを再描画します。

FYI、セッターのアニメーション版:

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

は、適切なズームではなくぼやけた、しかしで、私はズームの変化をアニメーションにしたくない、正しくコンテンツのテキストが表示されます。

答えて

0

アニメーションを見たくない場合は、アニメーションの時間をゼロにすることができます。以下のコードはあなたを助けます。

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

もう一つのアドバイスは、WebViewのをスケールするCGAffineTransformMakeScale方法を使用しています。

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

アニメーションを追加するとぼかし効果が消えることがわかりませんでしたので、あなたの投稿に感謝しました。

私はあなたと同じソリューションを検索するが、残念ながら、 ondermerol の答えは私のために動作しません。

私はUIScrollViewののデリゲートを使用していることを修正 - >UIScrollViewDelegate


1)は、のviewDidLoadでは、あなたのクラス

@property (nonatomic) BOOL webViewWasForceZooming; 

2)にBOOLプロパティを追加し、接続デリゲートを開き、BOOL値を設定します

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

3)

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

4)は、アニメーションの再生時間がnullではないがために私のソリューションは完璧ではなかった

#pragma mark - UIScrollViewDelegate 

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

ズーム後のWebViewをバック表示設定して新しいスケールwebviewがロードされた後にズームを変更するために、それは素晴らしいです。

誰かを助けることを願っています。

関連する問題