如何用一根手指而不是两根手指移动地图(在 WKWebView 内)

Posted

技术标签:

【中文标题】如何用一根手指而不是两根手指移动地图(在 WKWebView 内)【英文标题】:How to move map (within WKWebView) with one finger instead of two fingers 【发布时间】:2017-08-23 13:09:42 【问题描述】:

我是 ios 移动应用开发的新手。在我的应用程序中,我们有 WKWebView,我们在其中显示谷歌地图。目前,移动地图需要两根手指。如何改变这种行为并让地图用一根手指移动?

【问题讨论】:

地图默认只移动一根手指 @Ishegg - 我们在 WKWebView 中展示我们的移动网站(有 googleMaps)。我们没有使用本机代码渲染谷歌地图。 @Sagar - 我之前在我的应用程序中使用了 webView,那时我可以用一根手指移动地图,但在实现 WKWebView 后,它显示背景消息“用两根手指移动地图”。如果地图用一根手指移动是默认行为,是什么导致了两根手指的行为?? @SRM 这就是我的意思。检查我的答案(并在那里发表评论),您需要进行我在您的网站上提到的这些调整。默认行为是 两个 手指滚动网站,而不是一个。 我们尝试过,但没有帮助。感谢您的建议。 【参考方案1】:

您可以访问地图代码吗?在可滚动页面上,gestureHandling 设置为 cooperative by default。这意味着,您需要两根手指来平移地图。要使其正常工作,您需要将gestureHandling 设置为greedy,这将允许您的用户仅用一根手指平移地图。不过先测试一下,因为它被设置为cooperative 是有原因的。在网站上向下滚动并让您的滚动条被您不想滚动的地图劫持可能非常烦人。

function initMap() 
    var locationRio = lat: -22.915, lng: -43.197;
    var map = new google.maps.Map(document.getElementById('map'), 
        zoom: 13,
        center: locationRio,
        gestureHandling: 'greedy'
    );

【讨论】:

以上是关于如何用一根手指而不是两根手指移动地图(在 WKWebView 内)的主要内容,如果未能解决你的问题,请参考以下文章

UIView 只有在超过一根手指的情况下才能通过触摸?

UIScrollView 放大时用 1 根手指平移

WPF学习第十八章 多点触控输入

WPF学习第十八章 多点触控输入

touchesEnded 当两根手指同时点击屏幕的任何部分时调用

使用触控板或触摸板的两根手指移动平滑和动态滚动?