2013-12-09 42 views
5

我在UIWebView中加載HTML文本。該頁面以默認縮放等於1.0完美加載。 UIWebView的scalesPageToFit屬性設置爲YES,因此可以用捏手勢放大/縮小頁面。 我想要做的是將初始webView的內容縮放設置爲2.0。UIWebView縮放的非動態變化模糊內容

我試過這段代碼:

webView.scrollView.zoomScale = 2.0; 

但內容顯得模糊,並儘快開始我捏用手勢縮放網頁視圖重新渲染,而不模糊的內容。

僅供參考,動畫版的二傳手:和

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

顯示內容文本正確,適當的縮放不模糊,但我不想動畫縮放的變化。

回答

0

如果你不想看到動畫,你可以給動畫時間零。下面的代碼將幫助你。

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

另一個建議是使用CGAffineTransformMakeScale方法來縮放網頁視圖。

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

我不知道添加動畫可以使消失的模糊效果,所以感謝您的帖子,這是有幫助的。

我尋找你但不幸的是,的ondermerol答案不爲我工作相同的解決方案。

我修復使用的UIScrollView的委託 - >UIScrollViewDelegate


1)在你的類

@property (nonatomic) BOOL webViewWasForceZooming; 

2)添加BOOL財產在viewDidLoad中,連接您的代表並設置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)變焦

#pragma mark - UIScrollViewDelegate 

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

因爲動畫時長不爲空,但我的解決方案並不完美展後回web視圖在webview加載後改變縮放,這很好。

希望它能幫助別人。