重叠视图和gestureRecognizer iPhone

时间:2012-12-05 19:40:23

标签: iphone uiimageview z-index uitapgesturerecognizer

我有一个问题 - iPhone中是否有任何可能使UITapGestureRecognizer仅响应UIImageView的一部分。 Actualy,问题如下 - 有一个带手势识别器的UIImageView添加,这些UIImageView的某些部分被其他View覆盖。当点击这个其他视图时,UIImageView会识别该点按。这个问题怎么解决?

1 个答案:

答案 0 :(得分:1)

我不确定我理解你的问题。您是否希望在轻触图像视图的视图时触发手势识别器?如果是这样,我猜你可以将手势识别器添加到重叠视图中。

如果您有两个重叠的视图,并且只想触摸重叠的部分时触摸,我建议将点击手势识别器添加到主视图并检查是否触摸了重叠。

- (void)viewDidLoad
{
    [super viewDidLoad];

    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureRecognizerTriggered:)];
    [self.view addGestureRecognizer:gestureRecognizer];
}

- (void)tapGestureRecognizerTriggered:(UITapGestureRecognizer *)gestureRecognizer
{
    CGPoint location = [gestureRecognizer locationInView:self.view];
    if (CGRectContainsPoint(self.frontView.frame, location) &&
        CGRectContainsPoint(self.backView.frame, location))
    {
        // Handle touch
    }
}

如果要在条件语句的前CGRectContainsPoint(self.backView.frame, location)处进行触摸,则要处理触摸。