1

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

4

1 回答 1

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)条件语句的前面,则要处理触摸。

于 2012-12-05T21:28:32.663 回答