我在UIWebView
内有一个UIScrollView
(滚动视图包含另一个组件)
我尝试在UIWebView
上的 Interface Builder 或 Programmatic 上启用多点触控,但它仍无法缩放html,我是否需要同时处理在UIScrollView
和UIWebView
?或者我还有什么不设定的?
答案 0 :(得分:344)
你必须设置scalesPageToFit = YES,以便在UIWebView上进行任何捏合和缩放
答案 1 :(得分:12)
好的,您需要同时执行上述操作,还需执行以下操作。我在主视图中有一个Web视图,但是没有用。
<UIScrollViewDelegate>
,将滚动视图委托拖到Interface Builder中的视图控制器,然后实现viewForZoomingInScrollView
方法。这必须返回指向UIScrollView的指针(返回myScrollView)。答案 2 :(得分:3)
使用JavaScript,你可以控制缩放级别,虽然我找到的oly解决方案看起来并不顺畅。
说你有<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";
切换宽度非常重要 - 否则Mobile Safari会严重重绘错误(由于过度优化)。
您不能再次设置initial-scale
- 第二次忽略它。
答案 3 :(得分:2)
您需要在控制器中实现viewForZoomingInScrollView方法,否则缩放将不会执行任何操作。 (我真的不知道为什么要这样做,但你去了。)