使用UIGestureRecognizer子类双击某些特定子视图?

时间:2010-11-28 20:05:03

标签: iphone uigesturerecognizer wwdc

我按照121 WWDC 2010(高级手势识别)的会话演示,找到了在其他类(TransformGestureReconizer)上拥有所有行为(旋转,缩放,翻译)的方法,一切顺利,并为子视图执行此操作:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:baseView];
    subView1.userInteractionEnabled = YES;
    [self addTransformGestureToView:subView1];
}

这是我的问题: 当我双击所需的子视图时,我想要采取行动。

所以如果我添加一个:

- (void)handleDoubleTap:(UIGestureRecognizer *)gestureRecognizer

我无法选择我的操作提供哪种视图(例如更改其上的图像) 如果我添加主视图:

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

我只能处理主视图上的双击,但不能处理子视图,只能在TransformGestureReconizer.h上执行,但不能选择点击的视图(我认为是因为UIGestureRecognizer的子类)。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

    UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[self addTransformGestureToView:subView1];
[self.subView1 addGestureRecognizer:doubleTap];
[doubleTap release];