您应该在 UIWebView 中使用 javascript 来检测手势。(然后,如果需要,您可以将其传达回 Objective-C。)这些是Apple关于在 Javascript 中检测手势和触摸的文档。我也发现这篇文章很有帮助,尽管他使用 javascript 库来处理事件绑定等。
这是一个在独立的 UIWebView 上进行缩放的工作示例。
请注意,它是 body 元素正在监听事件。在一个简短的页面上,如果您在下面巨大的未渲染空白处进行事件,它似乎无法捕捉到它。(如果有人知道更多,请发表评论。)
<body id='body'>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
<script type="text/javascript" charset="utf-8">
body = document.getElementById('body');
// (in percents)
zoom = 100;
maxZoom = 200;
minZoom = 50;
zoomIncrement = 25;
function gestureEnd(event) {
var newZoom;
if (event.scale > 1.0) {
// increase size
newZoom = zoom + zoomIncrement;
} else {
// decrease size
newZoom = zoom - zoomIncrement;
}
// don't exceed zoom boundaries
if (newZoom > maxZoom || newZoom < minZoom) {
return;
}
zoom = newZoom;
body.style.webkitTextSizeAdjust = zoom+"%";
}
body.addEventListener("gestureend", gestureEnd, false);
</script>
</body>