Ios 如何拥有多个UIWebView,每个都有自己的UIAPTgestureRecognitor?

Ios 如何拥有多个UIWebView,每个都有自己的UIAPTgestureRecognitor?,ios,objective-c,uiwebview,uigesturerecognizer,Ios,Objective C,Uiwebview,Uigesturerecognizer,我有一个具有3个uiwebview的视图控制器,所有视图都具有相同的帧,彼此重叠。我使用三个按钮在它们之间切换(类似于段控件)。我想在webview上附加一个点击手势识别器,这样点击每个webview就会产生一个新的控制器。但是,只有第一个webview的UITapgestureRecognitizer才会触发。有人能告诉我如何让另外两个手势识别器启动吗?这是我的代码: - (IBAction)changeWebView:(id)sender { UIButton *button = (

我有一个具有3个
uiwebview
的视图控制器,所有视图都具有相同的帧,彼此重叠。我使用三个按钮在它们之间切换(类似于段控件)。我想在webview上附加一个点击手势识别器,这样点击每个webview就会产生一个新的控制器。但是,只有第一个webview的
UITapgestureRecognitizer
才会触发。有人能告诉我如何让另外两个手势识别器启动吗?这是我的代码:

- (IBAction)changeWebView:(id)sender
{
    UIButton *button = (UIButton *)sender;

    switch (button.tag) {
        case 0:
        {
            [self.view bringSubviewToFront:WebView1];

            for (UITapGestureRecognizer *recognizer in WebView2.gestureRecognizers) {
                [WebView2 removeGestureRecognizer:recognizer];
            }

            for (UITapGestureRecognizer *recognizer in WebView3.gestureRecognizers) {
                [WebView3 removeGestureRecognizer:recognizer];
            }


            UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showFullScreen1)];
            tapGestureRecognizer.delegate = self;
            [WebView1 addGestureRecognizer:tapGestureRecognizer];

        }
            break;
        case 1:
        {
           [self.view bringSubviewToFront:WebView2];

            for (UITapGestureRecognizer *recognizer in WebView1.gestureRecognizers) {
                [WebView1 removeGestureRecognizer:recognizer];
            }

            for (UITapGestureRecognizer *recognizer in WebView3.gestureRecognizers) {
                [WebView3 removeGestureRecognizer:recognizer];
            }

            UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showFullScreen2)];
            tapGestureRecognizer.delegate = self;
            [WebView2 addGestureRecognizer:tapGestureRecognizer];
        }
            break;
        case 2:
        {
            [self.view bringSubviewToFront:WebView3];

            for (UITapGestureRecognizer *recognizer in WebView1.gestureRecognizers) {
                [WebView1 removeGestureRecognizer:recognizer];
            }

            for (UITapGestureRecognizer *recognizer in WebView2.gestureRecognizers) {
                [WebView2 removeGestureRecognizer:recognizer];
            }

            UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showFullScreen3)];
            tapGestureRecognizer.delegate = self;
            [WebView3 addGestureRecognizer:tapGestureRecognizer];
        }
            break;

        default:
            break;
    }
}

这听起来像是一个设计问题。为什么不只使用一个UIView并根据按下的按钮呈现正确的内容呢。然后,您只能有一个手势识别器,它也将根据按钮加载适当的控制器(或执行正确的顺序)

将UITapGestureRecognitizer添加到a视图中,并将所有3个UIWebview添加为它们的子视图。而无论何时检测到要点击UITapGestureRecognitizer,都可以从segmentedController或按钮中获取标签,无论您使用什么,并找到点击的是哪一个


不要一次又一次地添加UITapgestureRecognitizer并将其删除。

谢谢您的回复,但我需要同时加载所有三个页面,并且我还希望启用Web视图的缩放功能。因此,我不能使用单个视图,甚至不能在WebView上覆盖透明的UIButton。