2013-12-09 105 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加载后改变缩放,这很好。

希望它能帮助别人。