我怎样才能在UIScrollView内放大UIWebView?
我有一个UIWebView
里面的UIScrollView
(滚动视图包含另一个组件)
我试图启用界面生成器或UIWebView
编程多点触控,但它仍然不能放大的HTML,我需要处理在UIScrollView
和UIWebView
放大? 或者我还没有设置什么?
你必须设置scalesPageToFit = YES对于任何捏和缩放工作在UIWebView
好的,你需要同时做以上两件事,而且还要做到以下几点。 我在主视图中有一个网页视图,而这是行不通的。
- 如上所述,您首先必须在主视图中放置UIScrollView,然后将Web视图放在滚动视图中。
- 如上所述,在视图控制器中实现
<UIScrollViewDelegate>
,将滚动视图委托拖到Interface Builder中的视图控制器,并实现viewForZoomingInScrollView
方法。 这必须返回指向UIScrollView的指针(返回myScrollView)。 - 我为Web视图和滚动视图创build了IBOutlet属性 – 将它们在NIB中链接到您的视图控制器。
- 在滚动视图,转到属性检查器,设置最大和最小缩放因子(我设置0.5到5.0,这效果很好)。
- 在Web视图上,在属性检查器中:
- 在“Web视图”部分中,select“适合缩放页面”
- 在查看部分,select模式,“左上angular”
- 在底部的“查看”部分,勾选“启用用户交互”和“启用多重触摸”
您需要在您的控制器中实现viewForZoomingInScrollView方法,否则缩放将不会执行任何操作。 (我不知道为什么这个应该需要,但是你去了。)
使用JavaScript,您可以控制缩放级别,虽然我发现的oly解决scheme看起来不顺利。
假设你在<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
– 第二次忽略它。