如何在 UIWebView 上的 Long Tap 手势上创建 Tap 事件?
Posted
技术标签:
【中文标题】如何在 UIWebView 上的 Long Tap 手势上创建 Tap 事件?【英文标题】:How to create Tap event on Long Tap gesture on UIWebView? 【发布时间】:2012-11-07 00:48:54 【问题描述】:我在UIWebView
上添加了长按手势。但我希望UIWebView
在识别出我的 Long Tap 之前处理一个标准的 Tap 事件。 (Long Tap 应该处理两个手势——一个简单的 Tap 和我的 Long Tap)。如何做到这一点?
我认为需要在TouchBegin
上向UIWebView
发送Tap 事件。对吗?
【问题讨论】:
我想将它们一起工作,但 UIWebView 不处理长按的单击。 SingleTapGestureRecognizer 和 DoubleTapGestureRecognizer 在 UIWebView 上根本不起作用! 【参考方案1】:正确的代码:
- (void)viewDidLoad
UILongPressGestureRecognizer* gesture = [[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)] autorelease];
gesture.delegate = self;
[myWebView addGestureRecognizer:gesture];
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
return YES;
【讨论】:
【参考方案2】:请参考本节 UIGestureRecognizerDelegate
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIGestureRecognizerDelegate_Protocol/Reference/Reference.html
你发现当 2 个手势同时工作时会调用它。
gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
【讨论】:
谢谢!但是我已经用return true;
添加了这个方法,并且只有长按仍然有效。我还应该做什么?
请检查此方法中的单点触摸事件是否识别它们。在上述方法中写入NSLog();
语句。
它不会在任何水龙头上运行(长按和轻按)。我使用过:- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
并激活了UIGestureRecognizerDelegate
协议。
您将委托分配给您的班级。
但是在这种情况下该怎么做呢? UIWebView.gestures 仅包含我的 LongTap 手势。以上是关于如何在 UIWebView 上的 Long Tap 手势上创建 Tap 事件?的主要内容,如果未能解决你的问题,请参考以下文章