我有一个 UIWebView的内部 UIScrollView(scrollview 包含另一个组件)
UIWebView
UIScrollView
我试过在 Interface Builder和 UIWebView上同时启用多点触摸,但它仍然不能放大 html,我是否需要同时处理 UIScrollView和 UIWebView的放大?或者任何我没有设置的东西?
您需要在控制器中实现 viewForZoomingInScrollView 方法,否则缩放不会起到任何作用。(我真的不知道为什么需要这样做,但你看吧。)
有关详细信息,请参阅 http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html。
必须设置 scalesPageToFit = YES 才能在 UIWebView 上工作
好的,您需要同时执行以上两项操作,还需要执行以下操作。我在主视图中有一个网页视图,但是没有用。
<UIScrollViewDelegate>
viewForZoomingInScrollView
使用 JavaScript 可以控制缩放级别,尽管我找到的唯一解决方案看起来并不流畅。
假设你在 <head>:
<head>
<meta id="vp" name="viewport" content="width=768,initial-scale=1.0">
若要缩放到4倍,并仍然允许用户更改缩放,请将内容更改两次:
var vp = document.getElementById('vp'); vp.content = "width=767,minimum-scale=4.0,maximum-scale=4.0,user-scalable=yes"; vp.content = "width=768,minimum-scale=0.25,maximum-scale=10.0,user-scalable=yes";
切换宽度是非常重要的-否则移动 Safari 有严重的重新绘制错误(由于过度优化)。
您不能只是设置 initial-scale再次-它被忽略的第二次。
initial-scale