回答:
ピンチおよびズームをUIWebViewで機能させるには、scalesPageToFit = YESを設定する必要があります。
さて、あなたは上記の両方を行う必要がありますが、次のことも行う必要があります。メインビューにWebビューがありましたが、機能しませんでした。
<UIScrollViewDelegate>
ビューコントローラーに実装し、スクロールビューデリゲートをInterface Builderのビューコントローラーにドラッグして、viewForZoomingInScrollView
メソッドを実装します。これは、UIScrollViewへのポインタを返す必要があります(myScrollViewを返します)。JavaScriptを使用すると、ズームレベルを制御できますが、私が見つけたolyソリューションは滑らかに見えません。
あなたが持っていると言います<head>
:
<meta id="vp" name="viewport" content="width=768,initial-scale=1.0">
4倍にズームし、ユーザーがズームを変更できるようにするには、コンテンツを2回変更します。
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
もう一度設定することはできません-2回目は無視されます。
コントローラにviewForZoomingInScrollViewメソッドを実装する必要があります。そうしないと、ズームしても何も起こりません。(なぜこれが必要なのか本当にわかりませんが、それで終わりです。)
詳細については、http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.htmlを参照してください。
scalesPageToFit = YES
動作しますが、デフォルトのコンテンツサイズが変更されます。私の答えを見てください。これは役に立ちます。