UIwebView shouldStartLoadWithRequest 委托调用后需要点击手势方法
Posted
技术标签:
【中文标题】UIwebView shouldStartLoadWithRequest 委托调用后需要点击手势方法【英文标题】:Need tap gesture method after UIwebView shouldStartLoadWithRequest delegate invocation 【发布时间】:2012-07-17 09:40:09 【问题描述】:我的问题是我在 UIView 中有一个 webView,而 UIView 有点击手势和 web 视图类有 UIWebView 的委托。
我的问题是当我点击一个链接时,它首先调用 tap 然后 shouldStartLoadWithRequest
。所以我需要防止调用为点击视图而编写的代码。
任何有想法的人............
编辑
Web 视图委托的代码
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
if(navigationType == UIWebViewNavigationTypeLinkClicked)
self.isAnyLinkTapped = YES;
RELEASE(webURL);
webURL = [[NSString stringWithFormat:@"%@",[request.URL absoluteString]] retain];
NSArray *urlCoponents = [[request.URL absoluteString] componentsSeparatedByString:@"/"];
if([urlCoponents count]>0)
//Some code here
我已经添加了这样的点击手势
_tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
点击下面的代码正在调用。
- (void) tapped:(UITapGestureRecognizer *) recognizer
touchPointLocationForTap = [recognizer locationInView:recognizer.view];
[(WebViewController*)delegate setIsScreenTouched:YES];
BOOL isThereAnySelection = [self isThereAnyTextSelectionOnWebView];
if (!isThereAnySelection)
[self performSelector:@selector(sendTapEventToWebController) withObject:nil afterDelay:1.2];
【问题讨论】:
【参考方案1】:请贴一些代码让大家看懂..
顺便说一句-
您可以使用此条件识别被触摸的视图
if([[touches view] isKindOfClass:[UIWebView class]])
//Do whatever you want to do with webview
else
//Rest of the code
【讨论】:
好的,我已经编辑了我的问题。我需要接触网络视图,但需要在单击但点击任何链接时防止点击:在 shouldStartLoadWithRequest:. 之前调用方法 因为您在 UIView 上添加了点击手势,这是您的 webview 的超级视图,总是被点击:将首先被调用。为什么要添加 tapGuesture? UIWebView中是否点击了超链接可以直接获取。 轻拍用于其他一些功能。 我可以知道什么样的功能? 当我点击网页视图时,html 会全屏阅读,而当我点击它时,它会缩小。同时在 html 的一侧点击页面翻转动画以显示下一页。它就像一本 html 书。现在 html 有一些链接,当我触摸链接时,它首先执行全屏模式,然后执行链接操作。以上是关于UIwebView shouldStartLoadWithRequest 委托调用后需要点击手势方法的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UIWebView 上显示覆盖而不阻止用户与 UIWebView 的交互
在 xib 上更改小部件的类? (将 UIWebView 更改为我自己的 UIWebView 类别)
iOS小技能:UIWebView 被拒的解决方案(用更安全的WKWebView替代UIWebView)
在 UITableViewCell 中加载 UIWebView 并根据 UIWebview 的内容制作 UITabViewCell 的高度