簡體   English   中英

為什么點擊手勢識別器會識別其父視圖中視圖的水龍頭?

[英]Why tap gesture recognizer recognizes the taps from the view on its parent view?

我有一個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上添加了另一個視圖:

[self.scrollView addSubview:self.activeTab];

activeTab超過inactiveTap。 當我點擊activeTap時,手勢識別器會發射,我想不要發生這種情況。 我怎么能避免這個?

使用UIGestureRecognizerDelegate及其方法gestureRecognizer:shouldReceiveTouch: . 您可以檢查觸摸點是否在視圖框內,如果您不希望在該視圖上發生觸摸,則返回NO

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM