我怎样才能在UIScrollView内放大UIWebView?

我有一个UIWebView里面的UIScrollView (滚动视图包含另一个组件)

我试图启用界面生成器UIWebView 编程多点触控,但它仍然不能放大的HTML,我需要处理在UIScrollViewUIWebView放大? 或者我还没有设置什么?

你必须设置scalesPageToFit = YES对于任何捏和缩放工作在UIWebView

好的,你需要同时做以上两件事,而且还要做到以下几点。 我在主视图中有一个网页视图,而这是行不通的。

  1. 如上所述,您首先必须在主视图中放置UIScrollView,然后将Web视图放在滚动视图中。
  2. 如上所述,在视图控制器中实现<UIScrollViewDelegate> ,将滚动视图委托拖到Interface Builder中的视图控制器,并实现viewForZoomingInScrollView方法。 这必须返回指向UIScrollView的指针(返回myScrollView)。
  3. 我为Web视图和滚动视图创build了IBOutlet属性 – 将它们在NIB中链接到您的视图控制器。
  4. 在滚动视图,转到属性检查器,设置最大和最小缩放因子(我设置0.5到5.0,这效果很好)。
  5. 在Web视图上,在属性检查器中:
  6. 在“Web视图”部分中,select“适合缩放页面”
  7. 在查看部分,select模式,“左上angular”
  8. 在底部的“查看”部分,勾选“启用用户交互”和“启用多重触摸”

您需要在您的控制器中实现viewForZoomingInScrollView方法,否则缩放将不会执行任何操作。 (我不知道为什么这个应该需要,但是你去了。)

有关详细信息,请参阅http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html

使用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 – 第二次忽略它。