UIWebView的探究:WebView是如何实现不能添加手势

我想给webView添加手手势,结果添加不上,网上提供了解决办法:

1.cancelsTouchesInView=NO;

2.使用它的delegate

3.实现delegate

这个代理方法比较有意思,如果没有实现这个方法的话,一个 view只能添加一次同种手势,并且后面添加的手势会覆盖前面的手势。那么疑问解决了

还是想搞清楚原理,就用runtime 探究它的属性,变量,方法,结果出现一大堆东西,却没有丝毫帮助。我想知道webView包涵了那些手势,既然webView有手势,那么我就遍历出来,思路是先去的webView 上的所有view(包含webView),然后取webView的手势,方法如下:

UIWebView的探究:WebView是如何实现不能添加手势_第1张图片
打印结果
UIWebView的探究:WebView是如何实现不能添加手势_第2张图片
遍历所有的View

大家猜猜结果如何,结果是:objc[634]: Class WebView is implemented in both /System/Library/PrivateFrameworks/WebKitLegacy.framework/WebKitLegacy and /var/containers/Bundle/Application/44B0B0E6-C43E-470E-82D2-9F231F6C6F00/CustomWebView.app/CustomWebView. One of the two will be used. Which one is undefined.并且无法push到当前的controller

这个方法宣布失败;希望这点经验对大家有帮助,如果有方法解决,请提点,感激不尽。

其实还有一种实现方式,发给大家个思路,重写手势

你可能感兴趣的:(UIWebView的探究:WebView是如何实现不能添加手势)