重叠视图和手势识别器 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的主要内容,如果未能解决你的问题,请参考以下文章
如果多个带有手势的视图重叠,如何将 UIGestureRecognizer 放在前面
仅对 touchesBegan 和 NOT 手势识别器使用 hitTest 逻辑
iPhone UIView touchesMoved: withEvent: 不会在 UIView 上使用手势识别器调用