快速問題:如何檢測輕擊手勢識別器是否在視圖的子視圖內?例如。如果我點擊一個對象,例如添加了作爲子視圖的方塊,並添加了輕拍手勢識別器,我如何檢測到它已被輕敲?如何在子視圖中檢測輕擊手勢
回答
當您使用-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;
謝謝,這有助於很多! – Fitzy
謝謝@Brandom –
可以使用requireGestureRecognizerToFail:
識別子視圖上水龍頭,請參閱this代碼
也許你應該設置爲: subviews.userInteractionEnabled = YES; 祝你好運!
該死!這是我需要的。我的子視圖被gestureRecognizer忽略,現在它工作。謝謝。 – surfrider
- 1. 如何檢測輕掃/輕拂手勢?
- 2. iOS:在子視圖內輕掃手勢
- 3. 檢測輕掃手勢
- 4. 叩擊手勢子視圖觸摸檢測
- 5. 在mkmapview上檢測不是註釋的輕擊手勢?
- 6. 檢測輕掃手勢的UIWebView
- 7. 父視圖上的雙擊手勢和子視圖上的單擊手勢
- 8. iOS - 忽略輕擊手勢
- 9. CKComponent處理輕擊手勢
- 10. 如何選擇輕擊手勢而不是畫手勢?
- 11. UIPopoverPresentationController不會在標題視圖上禁用輕擊手勢
- 12. iOS核心圖 - 檢測圖上的輕掃手勢
- 13. 如何在列表視圖上實現輕掃手勢
- 14. 如何在向視圖添加另一個輕擊手勢後禁用其他觸摸手勢?
- 15. Swift - 我如何檢測輕掃手勢距離放棄?
- 16. 如何檢測自定義UIScrollView上的水平輕掃手勢?
- 17. 如何在半視圖上實現輕掃手勢並在另一半視圖上實現平移手勢?
- 18. 在引擎中水平和垂直檢測輕掃手勢
- 19. ios輕掃手勢不能在子視圖上用父視圖上的手勢識別
- 20. Android - 如何檢測特定視圖上的手勢?
- 21. 許多點擊手勢在視圖上
- 22. 爲什麼輕擊手勢識別器能夠識別父視圖上的視圖中的輕敲?
- 23. 手勢檢測3.1.3
- 24. Android手勢檢測
- 25. ListFragment中的手勢檢測
- 26. UICollectionView prepareForSegue以手勢輕擊UIImageView
- 27. 如何在使用MPMoviePlayerController時識別輕擊手勢
- 28. 輕觸手勢識別器會干擾UITextView中的URL輕擊
- 29. Ios5輕掃手勢
- 30. 輕掃手勢iphone
請說清楚你喜歡做什麼?想要識別點擊子視圖? –