如何在UIWebview中禁用放大镜?

Mas*_*adi 11 iphone uiwebview magnification

如何禁用在UIWebView上触摸时出现的放大镜?我不想禁用用户交互,但我不希望webview显示缩放玻璃.有任何想法吗?

jtb*_*des 8

不,放大镜与选择有着千丝万缕的联系.要禁用它,您必须完全禁用选择(您可以使用它-webkit-user-select: none来执行此操作).


Dan*_*mov 7

因为接受的解决方案对我不起作用,我不得不寻找其他选择,我找到了一个.
请注意,我不知道Apple是否批准此技术.根据自己的恐惧和风险使用它.

(我们没有被拒绝;我认为Apple并不关心你弄乱UIWebView内部,但要注意.)

我所做的是递归地走下UIWebView子视图并枚举它们gestureRecognizers.每当我遇到一个时UILongPressGestureRecognizer,我就会把它设置enabledNO.

这完全摆脱了放大镜,显然禁用了任何默认的长按功能.

当用户开始编辑文本时,似乎iOS重新启用(或重新创建)这些手势识别器.
好吧,我不介意在文本字段中使用放大镜,所以我不会立即禁用它们.

相反,我等待blur我的文本元素上的事件,当它发生时,我再次走过子视图树.
就这么简单,它的工作原理.