Ios UIWebView的非动画更改';s缩放使内容模糊

Ios UIWebView的非动画更改';s缩放使内容模糊,ios,objective-c,uiwebview,zooming,Ios,Objective C,Uiwebview,Zooming,我正在UIWebView中加载HTML文本。页面正在加载,默认缩放为1.0。UIWebView的scalesPageToFit属性设置为“是”,因此可以使用收缩手势放大/缩小页面。 我要做的是将初始webView的内容缩放设置为2.0 我尝试了以下代码: webView.scrollView.zoomScale = 2.0; 但是内容看起来很模糊,当我用手势开始收缩缩放时,web view会在没有模糊的情况下重新渲染内容 仅供参考,setter的动画版本: [webView.scrollVie

我正在UIWebView中加载HTML文本。页面正在加载,默认缩放为1.0。UIWebView的scalesPageToFit属性设置为“是”,因此可以使用收缩手势放大/缩小页面。 我要做的是将初始webView的内容缩放设置为2.0

我尝试了以下代码:

webView.scrollView.zoomScale = 2.0;
但是内容看起来很模糊,当我用手势开始收缩缩放时,web view会在没有模糊的情况下重新渲染内容

仅供参考,setter的动画版本:

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

正确显示内容文本,适当缩放且不模糊,但我不想设置缩放更改的动画

如果不想查看动画,可以为动画时间设置零。下面的代码将帮助您

[UIView animateWithDuration:0.0 animations:^{
            webView.scrollView.zoomScale = 2.0;;
        }completion:^(BOOL finished) {
            //...
        }];
另一个建议是使用CGAffineTransformMakeScale方法来缩放webview

webView.transform = CGAffineTransformMakeScale(2, 2);

我不知道添加动画可以使模糊效果消失,所以谢谢你的帖子,这很有帮助

我搜索与您相同的解决方案,但不幸的是,ondermerol的答案不适用于我

我使用UIScrollView->UIScrollViewDelegate的委托解决了这个问题


1)在类中添加布尔属性

@property (nonatomic) BOOL webViewWasForceZooming;
2)viewDidLoad中,连接您的代表并设置布尔值

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;
        }
    }
我的解决方案并不完美,因为动画持续时间不是空的,但在加载webview后更改缩放效果很好

希望它能帮助别人