加载外部网站时,UIWebView以编程方式设置初始缩放比例?

Wil*_*sch 6 iphone zoom objective-c uiwebview ios

我想要做的是为外部网站设置初始缩放比例[在某些情况下,内容偏移,但这不太重要].但是在应用程序最初设置缩放和偏移之后,用户应该能够更改它们,并且应用程序不应该干扰.

这里,此处此处提供一些相关信息.但据我所知,没有一个能做到我想要的.

元设置方法看起来很有希望 - 但是当我不控制将要加载的html内容时,我将如何设置它?

Sri*_*aju 30

试试这个来设置初始缩放级别 -

[webView stringByEvaluatingJavaScriptFromString:@"document. body.style.zoom = 5.0;"];
Run Code Online (Sandbox Code Playgroud)

也不要忘记设置scalesPageToFit为NO,你就完成了.

如果将此项设置为YES,则会缩放网页以适合用户,并且用户可以放大和缩小.如果为NO,则禁用用户缩放.默认值为NO.

  • 我把它放到webViewDidFinishLoad中,它很棒,谢谢!但我确实希望允许用户更改我的初始缩放.我不希望缩放页面以适应[它不是] - 但用户缩放是禁用的. (2认同)

Heo*_*des 5

如果要为Web视图设置初始缩放,则Web视图可以缩放.您可以尝试在webViewDidFinishLoad协议方法中将元标记添加到HTML字符串的head标记中.您可以更改"初始比例","最小比例"和"最大比例"以适应您的要求.看起来像这样:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString* js =
    @"var meta = document.createElement('meta'); " \
    "meta.setAttribute( 'name', 'viewport' ); " \
    "meta.setAttribute( 'content', 'width = device-width, initial-scale = 1.0,minimum-scale=1.0,maximum-scale=10.0 user-scalable = yes' ); " \
    "document.getElementsByTagName('head')[0].appendChild(meta)";
    [webView stringByEvaluatingJavaScriptFromString: js];
}
Run Code Online (Sandbox Code Playgroud)