1

在 iOS 应用程序中,我有一个 UIWebView 用于显示一些内容并关闭此 UIWebView 我使用以下机制:

我在 UIWebView 上放置了一个 DoubleTapView(UIView 的子类)。

这个 DoubleTapView 捕获双击事件并执行足够的代码来关闭自身以及 UIWebView。到目前为止,它工作正常。

这就是问题所在:UIWebView 感兴趣的所有事件(滚动内容、点击链接等)都不会通过;它们被 DoubleTapView 阻止。我该如何解决这个问题?

事实上,对于我刚才描述的内容,我可以使用 UIView 而不是 DoubleTapView。但我打算用 DoubleTapView 子类化 UIView。然后实现: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 或 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event; 解决我的问题,但我一定做错了什么,因为它不起作用(按我的方式列出)。

这是我编写的一些代码,用于将这些部分放在一起:

    webView=[[UIWebView alloc] initWithFrame:varFrame];
    webView.delegate=self;
    quitGesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(quitWeb:)];
    quitGesture.numberOfTapsRequired=2;
    varFrame.origin=CGPointZero;
    quitSensor=[[DoubleTapView alloc] initWithFrame:varFrame];
    quitSensor.userInteractionEnabled=YES;
    [quitSensor addGestureRecognizer:quitGesture];
    [webView addSubview:quitSensor];

这是我在实现 DoubleTapView 的方法时所尝试的:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [[self superview] touchesBegan:touches withEvent:event];
}

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    [[self superview] motionBegan:motion withEvent:event];
}
4

0 回答 0