重叠视图和手势识别器 iPhone

Posted

技术标签:

【中文标题】重叠视图和手势识别器 iPhone【英文标题】:Overlapping views and gestureRecognizer iPhone 【发布时间】:2012-12-05 19:40:23 【问题描述】:

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

【问题讨论】:

如果你得到答案,请告诉我。 【参考方案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),如果要处理触摸。

【讨论】:

抱歉,我的问题是不同的 - 我不希望我的图像在视图重叠时被触发 谢谢。这就是我需要的!

以上是关于重叠视图和手势识别器 iPhone的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 上的重叠手势识别器

如果多个带有手势的视图重叠,如何将 UIGestureRecognizer 放在前面

仅对 touchesBegan 和 NOT 手势识别器使用 hitTest 逻辑

iPhone UIView touchesMoved: withEvent: 不会在 UIView 上使用手势识别器调用

使用带有自定义容器视图控制器的滑动手势识别器崩溃

如何在弹出视图上识别手势而不中断下方视图上的手势识别?