项目需要使用UWebView实现预览ppt,pdf,word,excel的功能,因而选择是用UiWebView来实现,很快实现打开文件的核心功能,记在窃喜时候,单击和滑动隐藏navigationbar,遇到了问题,开始是单击事件,没法捕获,后来是单击事件捕获后,长按事件又丢失,各种google,github寻觅解决方案,各种答案各种坑。最后硬是自己给实验出来了正确的解决方法;
贴出方法做个记录:
//singleTap webView
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(changDisplayTopBarAndBottomBar)];
singleTap.delegate = self;
[self.webview addGestureRecognizer:singleTap];
vc里边实现UIGestureRecognizerDelegate协议后,正常添加单击事件,只是这样做 UIWebView 单击事件其实不能捕获,最重要的是下面这个delegate方法
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
字面翻译就是『是不是同时辨认其他的手势』,UIGestureRecognizerDelegate还有其他的几个代码事件,看方法名可以大致猜出来是响应失败的处理,都是写Yes or NO的选择,切记不可贪杯,只实现这1个方法便可,他们之间有冲突关系。这也是坑所在