我有一个UIWebView,它作为UIview中的子视图添加,我想检测何时触摸这个UIWebView但是touchesBegan只是不起作用。
有什么想法吗?
答案 0 :(得分:3)
在子类UIWebView中调用super
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan: touches withEvent: event];
}
答案 1 :(得分:0)
子类化并等待touchesBegan不会帮助你,因为它不会被调用
我将UIWebView
子类化,并且只是在2级深度的子视图中“吸收”到它的手势识别器上(你可以递归地去,但那足够iOS6-7)。
然后,您可以使用触摸位置和手势识别器的状态执行任何操作。
for (UIView* view in self.subviews) {
for (UIGestureRecognizer* recognizer in view.gestureRecognizers) {
[recognizer addTarget:self action:@selector(touchEvent:)];
}
for (UIView* sview in view.subviews) {
for (UIGestureRecognizer* recognizer in sview.gestureRecognizers) {
[recognizer addTarget:self action:@selector(touchEvent:)];
}
}
}
答案 2 :(得分:0)
subview.swift
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
self.next?.touchesBegan(touches, with: event)
}
如果不确定是否应致电super.touchesBegan(touches, with: event)
,请参阅文档discussion。
superview.swift
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
// handle
}