当前位置:  开发笔记 > 编程语言 > 正文

UIWebView - 加载外部网站,以编程方式设置初始缩放比例,并允许用户随后进行缩放

如何解决《UIWebView-加载外部网站,以编程方式设置初始缩放比例,并允许用户随后进行缩放》经验,为你挑选了1个好方法。

有可能做到以上所有吗?SO给了我一个伟大的方式来设定初始缩放比例在这里.即,要在我的webViewDidFinishLoad方法中包含以下行:

[webView stringByEvaluatingJavaScriptFromString: @"document.body.style.zoom = 5.0;"];

但我仍然不能做的是允许用户在程序初始设置后更改缩放比例.如果我将scalePagesToFit设置为NO,则用户无法更改缩放比例.如果我将scalePagesToFit设置为YES,它将覆盖我的程序化缩放.

有人可以帮忙吗?

编辑:谢谢你的回应.但是,如果我缩放scrollView,事情就会模糊不清.



1> TomSwift..:

您可以添加或修改标记以实现此目的.有关meta/viewport标记的Apple文档:

https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html

以下是加载文档后添加标记的示例:

- (void) webViewDidFinishLoad:(UIWebView *)webView
{
    NSString* js = 
    @"var meta = document.createElement('meta'); " \
     "meta.setAttribute( 'name', 'viewport' ); " \
     "meta.setAttribute( 'content', 'width = device-width, initial-scale = 5.0, user-scalable = yes' ); " \
     "document.getElementsByTagName('head')[0].appendChild(meta)";

    [webView stringByEvaluatingJavaScriptFromString: js];        
}

如果您要加载的网页提供现有的元标记,则可能需要对其进行修改,而不是尝试向DOM添加新的元元素.这个SO问题讨论了这个技术:

我可以动态更改移动版Safari中的视口元标记吗?

在我的测试应用程序中,我将其设置UIWebView scalesPageToFit为YES.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有