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