當(dāng)你的App中有 WebView 或者有 Text 文本的時(shí)候,毫無疑問渡冻,系統(tǒng)默認(rèn)地會(huì)在你進(jìn)行長按的時(shí)候戚扳,彈出一個(gè)框,來讓你拷貝族吻、粘貼帽借、剪切文本等,亦或是彈出一個(gè)放大鏡超歌。
而當(dāng)你進(jìn)行開發(fā)的時(shí)候砍艾,往往很明確的知道自己的 WebView 希望展示的是什么東西,這個(gè)時(shí)候巍举,你可能會(huì)希望自定義長按手勢(LongPressGesture)的功能脆荷,而不是自帶的彈出框。
然而當(dāng)你做了一系列工作自定義了長按手勢之后懊悯,卻發(fā)現(xiàn)它的優(yōu)先級是低于系統(tǒng)默認(rèn)的彈出框的蜓谋。
ios低版本的可以用下面的方法
[_webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';" ];
[_webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';" ];
在Xcode7IOS9上面這個(gè)方法就不適用了。
最后發(fā)現(xiàn)長按手勢的默認(rèn)屬性中炭分,有一個(gè) minimumPressDuration 默認(rèn)值是 0.5桃焕,也就是說,在長按了0.5秒時(shí)捧毛,我們自定義的長按手勢執(zhí)行方法和系統(tǒng)的沖突了观堂,于是解決方法顯而易見:把自定義長按手勢的反應(yīng)時(shí)間縮短到0.5s以內(nèi)让网,這樣就可以在系統(tǒng)方法執(zhí)行之前完成操作,而事實(shí)上师痕,你甚至可以簡單粗暴地把它改為0.1s溃睹,依然不會(huì)和點(diǎn)按的 Tap 手勢有沖突。
self.longPressPan.minimumPressDuration = 0.1