0

我有 UIViewController。和 3 UIView 里面如何独立检测触摸。

我有 3 个类,并在 UIViewController 中添加了对象

并且在每个类中都有这个方法,我需要触摸对象(UIView)独立响应事件

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

}

例子:

  • view1 NSLog(@"我触摸了视图 1");

    view2 NSLog(@"我触摸了视图 2");

    view3 NSLog(@"我触摸了视图 3");

谢谢!!

4

1 回答 1

4

如果所有三个视图都是您的 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),您也可以使用我发布的第一个解决方案。

于 2013-06-24T21:23:40.740 回答