2

StackOverflowで見つけた回答に従うと、次のことを実装していることをUIWebView認識させる必要があります。touch

WebVC.h

#import <UIKit/UIKit.h>

@interface WebVC : UIViewController <UIWebViewDelegate, UIGestureRecognizerDelegate>

@property (nonatomic, copy) NSString *test;

@property (strong, nonatomic) IBOutlet UIWebView *webView;
@property (strong, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;

@property (strong, nonatomic) UITapGestureRecognizer *tapGestureR;

- (void)handleTap:(id)sender;

@end

WebVC.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.webView.delegate = self;

    self.tapGestureR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    self.tapGestureR.delegate = self;
    [self.webView addGestureRecognizer:self.tapGestureR];
}

- (void)handleTap:(id)sender
{
     NSLog(@"tapDetected");
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    return YES;
}

なぜ私が見えないのか知っていますNSLogか? Methodまったく呼び出されません。

よろしくお願いします。

4

2 に答える 2

5
self. webView.userInteractionEnabled = YES;

userInteractionEnabledメソッドを使用し、YESに設定します。お役に立てればと思います。

編集:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer WebVC.mクラスのメソッドを使用します。

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
     NSLog(@"shouldRecognizeSimultaneouslyWithGestureRecognizer");
    return YES;
}
于 2013-02-25T13:20:13.263 に答える
1
    for(UIGestureRecognizer *gesture in [webview gestureRecognizers])){
       if([gesture isKindOfClass:[UITapGestureRecognizer class]){
         if (gesture.numberOfTapsRequired == 1) 
            [webview removeGestureRecognizer:gesture];
       }
    }

次に、ジェスチャーを追加します。あなたが以前にしたように

于 2013-02-25T13:43:25.563 に答える