iPhone开发--检查UIWebView上Touch/UITapGestureRecognizer事件的最简单的方法(转载)
2011-12-19 14:21
507 查看
转载自:http://www.iphone-geek.cn/编程/检查uiwebview上touch的最简单的方法
我有一个程序需要检测UIWebView是否有touch动作,不幸得很,UIWebView上的touchesBegan等事件无法被检测。在网上查了一下,有许多解决方法,比如在UIWebView上再加一个透明的UIView,重置UIWindow的sendEvent或重置UIWebView的hitest方法等等,要么就是方案不太完美,要么就是太过复杂,经过实验我使用的这种方法最为简单(否则我也没有时间写在这里了),当然我只要求检测UIWebView上有touch动作即可。我的方法是使用UITapGestureRecognizer。关键的地方有两点,请看我的代码(我的代码是在一个UIViewController中):
第三行是第一个关键的地方,就是必须设置UITapGuestureRecognizer的delegate(一般我们直接使用initWithTarget,无需设置其delegate)。
第二个关键的地方是在下列delegate方法return YES。
做到这两点,你的UIWebView就可以响应touch事件了,你可以使用不同的UIGestureRecognizer来满足你不同的要求等。(handleSingleTap方法请自行补上)。
我有一个程序需要检测UIWebView是否有touch动作,不幸得很,UIWebView上的touchesBegan等事件无法被检测。在网上查了一下,有许多解决方法,比如在UIWebView上再加一个透明的UIView,重置UIWindow的sendEvent或重置UIWebView的hitest方法等等,要么就是方案不太完美,要么就是太过复杂,经过实验我使用的这种方法最为简单(否则我也没有时间写在这里了),当然我只要求检测UIWebView上有touch动作即可。我的方法是使用UITapGestureRecognizer。关键的地方有两点,请看我的代码(我的代码是在一个UIViewController中):
UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; [self.view addGestureRecognizer:singleTap]; singleTap.delegate = self; singleTap.cancelsTouchesInView = NO; [singleTap release];
第三行是第一个关键的地方,就是必须设置UITapGuestureRecognizer的delegate(一般我们直接使用initWithTarget,无需设置其delegate)。
第二个关键的地方是在下列delegate方法return YES。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; }
做到这两点,你的UIWebView就可以响应touch事件了,你可以使用不同的UIGestureRecognizer来满足你不同的要求等。(handleSingleTap方法请自行补上)。
相关文章推荐
- UIWebView上Touch/UITapGestureRecognizer事件的最简单的方法
- iPhone/iPad高级应用与手游开发学习笔记:多点触摸与手势检测(一:UITapGestureRecognizer)
- 在view上加UITapGestureRecognizer,按钮不触发单击事件的处理方法
- IOS开发之触摸与点击事件:UITapGestureRecognizer与UIPanGestureRecognizer应用
- 检查UIWebView上Touch的最简单的方法
- IOS开发之触摸与点击事件:UITapGestureRecognizer与UIPanGestureRecognizer应用
- iPhone开发之区分 touch 事件是单击还是双击的方法
- iPhone开发之手势的预习—— UITapGestureRecognizer pinch捏合 longPress长按 rotation旋转
- 检查UIWebView上Touch的最简单的方法
- IOS开发之触摸与点击事件:UITapGestureRecognizer与UIPanGestureRecognizer应用
- iPhone开发中touch的事件
- iOS开发笔记--iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognize
- iOS 6.0之前 UITapGestureRecognizer手势和UIButton 点击事件冲突
- 给控件添加单击事件--UITapGestureRecognizer
- IOS开发:UIScrollView类介绍及如何简单地截获touch事件
- iOS开发之UITapGestureRecognizer单双击
- 给控件添加单击事件--UITapGestureRecognizer
- ios 长按事件 ( UILongPressGestureRecognizer长按事件 (2013-02-21 16:10:41)转载▼
- UIWebView 使用手势UITapGestureRecognizer
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer