【问题标题】:Scale html content in Webview在 Webview 中缩放 html 内容
【发布时间】:2012-11-02 09:17:38
【问题描述】:

我将本地 HTML 模板加载到 WebView 中。我的 webview 的框架尺寸非常小(250X300)。我用它来只显示预览。问题是,我在 webview 中看不到整个 html 内容。我只能看到左上角。我必须滚动才能看到全部内容。 那么有没有可能为 webview 设置比例或缩放因子?

【问题讨论】:

    标签: macos safari webview


    【解决方案1】:

    如果您只缩放文本就足够了,则使用方法-[WebView makeTextSmaller:]-[WebView makeTextLarger:] 并按照WebView 的文档重置文本大小-[WebView makeTextStandardSize:]。这些方法对应Safari中的“Cmd -”和“Cmd +”和“Cmd 0”。

    如果您想缩放包括图像在内的 WebView 的全部内容,我使用以下方法:

    - (void) zoomWebView:(WebView *)aWebView withFactor:(float)fac
    {
        NSString *script = @"document.body.style.zoom";
        float oldFac = [[aWebView stringByEvaluatingJavaScriptFromString:script] floatValue];
        if( oldFac==0 ){ oldFac = 1.0; }
        NSString *res = [aWebView stringByEvaluatingJavaScriptFromString:
                [NSString stringWithFormat:@"%@='%1.2f';", script, (oldFac*fac)]];
        [aWebView setNeedsDisplay:YES];
    }
    

    【讨论】:

    • 它正在部分工作。它没有正确缩放整个内容。它正在完美地缩放某些内容,但某些内容并没有放大一点。
    【解决方案2】:

    玩了一会儿我得到了答案。

        [[[[[previewWeb mainFrame] frameView] documentView] superview] scaleUnitSquareToSize:NSMakeSize(.5, .5)];
    

    【讨论】:

    【解决方案3】:

    你可以使用无证

    - (void)_setZoomMultiplier:(float)m isTextOnly:(BOOL)isTextOnly
    

    注意:这可能会导致提交到 App Store 时出现问题。

    【讨论】:

      猜你喜欢
      • 2014-09-18
      • 2020-10-22
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多