gpt4 book ai didi

ios - 为什么点击手势识别器会识别其父 View 中的点击?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:59:23 26 4
gpt4 key购买 nike

我有一个 UIView 和一个点击手势识别器:

UIImageView *tabView = [[UIImageView alloc] initWithFrame:CGRectMake(41, 145, 702, 100)];
tabView.image = [UIImage imageNamed:@"inactive_tab"];
tabView.userInteractionEnabled = YES;
UITapGestureRecognizer *singleFingerTap =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleSingleTap:)];
[tabView addGestureRecognizer:singleFingerTap];
[self.scrollView addSubview:tabView];

然后我在 ScrollView 上添加另一个 View :

[self.scrollView addSubview:self.activeTab];

activeTab 在 inactiveTap 之上。当我点击到 activeTap 时,手势识别器会触发,而我不想发生这种情况。我怎样才能避免这种情况?

最佳答案

使用 UIGestureRecognizerDelegate 及其方法 gestureRecognizer:shouldReceiveTouch:。您可以检查触摸点是否在 View 框架内,如果您不想在该 View 上发生触摸,则返回 NO。`

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
CGPoint touchLocation = [touch locationInView:self.view];
return !CGRectContainsPoint(self.activeTab.frame, touchLocation);
}

关于ios - 为什么点击手势识别器会识别其父 View 中的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15244765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com