有可能做到以上所有吗?SO给了我一个伟大的方式来设定初始缩放比例在这里.即,要在我的webViewDidFinishLoad方法中包含以下行:
[webView stringByEvaluatingJavaScriptFromString: @"document.body.style.zoom = 5.0;"];
但我仍然不能做的是允许用户在程序初始设置后更改缩放比例.如果我将scalePagesToFit设置为NO,则用户无法更改缩放比例.如果我将scalePagesToFit设置为YES,它将覆盖我的程序化缩放.
有人可以帮忙吗?
编辑:谢谢你的回应.但是,如果我缩放scrollView,事情就会模糊不清.
您可以添加或修改标记以实现此目的.有关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.