簡體   English   中英

如何在子視圖中檢測點按手勢

[英]How to detect a tap gesture in subviews

快速提問:我如何檢測點擊手勢識別器是否在添加到視圖的子視圖內? 例如。 如果我點擊一個對象,例如已作為子視圖添加到已添加了點按手勢識別器的背景的方塊,如何檢測到它已被點擊?

當您使用-locationInView:調用您希望的任何視圖的處理程序方法時,您可以從手勢識別器中獲取水龍頭的點。 然后,在UIView上使用以下方法: - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event以獲取對被點擊的實際子視圖的引用,記住您傳入的點是相同的將空間坐標視為視圖。

一些代碼可以幫助您入門:

CGPoint point = [tapGestureRecognizer locationInView:parentView];
UIView *tappedView = [parentView hitTest:point withEvent:nil];

要使命中測試起作用,視圖需要將userInteractionEnabled屬性設置為YES 許多視圖,例如UILabel ,默認設置為NO 所以在上述之前:

self.subviewOfInterest.userInteractionEnabled = YES;

也許你應該設置為: subviews.userInteractionEnabled = YES; 祝好運!

您可以使用requireGestureRecognizerToFail:識別子視圖上的點擊,請參閱代碼

暫無
暫無

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

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