当长按 UIWebView 上的链接时,我正在实现一个自定义菜单。
为了防止 iOS 默认菜单,我使用:
-webkit-touch-callout:'none'
在 iOS 6、7 中一切正常:显示我的自定义菜单而不是默认的 UIWebView。但是在 iOS 8 中,一个奇怪的行为发生了。
在 iOS 8 中,在显示我自己的菜单后,我松开触摸,然后在 UIWebView 中加载链接。
我将 UIWindow 子类化,覆盖 sendEvent: 并查看不同之处:
在 iOS 6、7 中:显示我自己的菜单后,发送了一个 touchcancel。
在 iOS 8 中:没有任何反应。但是当我释放触摸时,触摸端是 发送并触发链接点击。
当我的菜单开始显示时,我尝试从 javascript 触发 touchcancel,但没有成功。
这种情况有什么解决方法吗?
最佳答案
对于那些将来可能会担心的人,我设法通过一个棘手的 hack 来克服这种情况:
CGPoint currentOffset = webview.scrollView.contentOffset;
[webview.scrollView setContentOffset:CGPointMake(currentOffset.x, currentOffset.y +1) animated:NO];
[webview.scrollView setContentOffset:currentOffset animated:NO];
关于ios - 长按链接时的 UIWebView 自定义 UIActionSheet 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29641387/