如果所有三个视图都是您的 viewController 视图的后代,您可以使用以下代码片段
for (UITouch *t in touches) {
CGPoint p = [t locationInView:self.view];
UIView *v = [self.view hitTest:p withEvent:event];
NSLog(@"touched view %@", v);
}
编辑
好的,我想你只有一个入口点(进入UIViewController
)用于触摸检测你的子视图;如果像您说的那样,每个子视图都有一个类,那么您已经解决了问题。NSLog(@"touched..")
除了将代码放入每个touchBegan:withEvent:
方法之外,您不需要做任何其他事情。
例如
@implementation FirstSubview
.
.
-( void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"I touched View 1");
}
.
.
@end
注意:由于UIViewController
也是一个UIResponder
(即继承自UIResponder
),您也可以使用我发布的第一个解决方案。