在 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];
}