【发布时间】:2012-11-02 09:17:38
【问题描述】:
我将本地 HTML 模板加载到 WebView 中。我的 webview 的框架尺寸非常小(250X300)。我用它来只显示预览。问题是,我在 webview 中看不到整个 html 内容。我只能看到左上角。我必须滚动才能看到全部内容。
那么有没有可能为 webview 设置比例或缩放因子?
【问题讨论】:
我将本地 HTML 模板加载到 WebView 中。我的 webview 的框架尺寸非常小(250X300)。我用它来只显示预览。问题是,我在 webview 中看不到整个 html 内容。我只能看到左上角。我必须滚动才能看到全部内容。
那么有没有可能为 webview 设置比例或缩放因子?
【问题讨论】:
如果您只缩放文本就足够了,则使用方法-[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];
}
【讨论】:
玩了一会儿我得到了答案。
[[[[[previewWeb mainFrame] frameView] documentView] superview] scaleUnitSquareToSize:NSMakeSize(.5, .5)];
【讨论】:
你可以使用无证
- (void)_setZoomMultiplier:(float)m isTextOnly:(BOOL)isTextOnly
注意:这可能会导致提交到 App Store 时出现问题。
【讨论】: