0

私の問題は、UIView内にwebViewがあり、UIViewにはタップジェスチャとUIWebViewのデリゲートを持つWebビュークラスがあります。

私の問題は、リンクをタップすると、最初にタップしてからタップすること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];  

}
4

1 に答える 1

0

誰もが理解できるように、いくつかのコードを投稿してください。

ところで-

この条件を使用して、タッチされたビューを識別できます

if([[touches view] isKindOfClass:[UIWebView class]]){
//Do whatever you want to do with webview
}else{
//Rest of the code
}
于 2012-07-17T09:45:43.607 に答える