- (void)touchesBegan:(NSSet *)触及withEvent:(UIEvent *)事件 { NSLog(@“触动”); }
上述方法未在我的应用中调用。我的申请说明如下。
我有MainViewController
,其中加载ContentViewController
。 ContentViewController
有一个加载pdf文件的webview。
如何倾听MainViewController's
查看。
问候。
答案 0 :(得分:3)
我可能不是100%准确,但如果您将-touchesBegan:withEvent:
放在视图控制器(或其主视图)中,那么您将只获得视图层次结构中某些子视图尚未处理的那些触摸。要拦截所有触摸,您应该使用UIView子类作为控制器视图并覆盖其中的hitTest:withEvent:
方法:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
touchedView = [super hitTest:point withEvent:event];
NSSet* touches = [event allTouches];
// handle touches if you need
return touchedView;
}
有关详细信息,请参阅iOS“事件处理指南”中的Event delivery部分