有沒有辦法檢測當前視圖之外的任何水龍頭?我沒有試圖用hitTest方法實現某些東西,但我不確定要理解它。檢測當前視圖外的任何水龍頭
4
A
回答
0
您可以使用UIGestureRecognizerDelegate協議
extension YourViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
shouldReceive touch: UITouch) -> Bool {
return (touch.view === self.view)
}
}
當觸摸是在後臺的看法,但「假」,如果它是你的視圖內這將僅返回「真」。
注意:身份運算符===將touch.view與self.view進行比較。你想知道兩個變量是否指向同一個對象。
而在viewDidLoad()中,您將創建gestureRecognizer並設置委託。
let gestureRecognizer = UITapGestureRecognizer(target: self,action: #selector(yourActionMethod))
gestureRecognizer.cancelsTouchesInView = false
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)
5
,你所要做的是,在的touchesBegan你必須得到來自觸摸組第一觸摸對象,你必須檢查的視圖中觸摸的位置(內要檢測觸摸)。
當您在View中獲得觸摸的位置後,您必須檢查您的currentView(您必須檢查是否檢查水龍頭是內部還是外部)。
如果currentView的框架包含觸摸位置,那意味着觸摸發生在視圖內部,否則外部。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
guard let location = touch?.location(in: self.view) else { return }
if !currentView.frame.contains(location) {
print("Tapped outside the view")
}else {
print("Tapped inside the view")
}
}
希望它有助於!
相關問題
- 1. 如何在視圖的外側檢測水龍頭(視圖是小的一個寬度和高度是200)。如何檢測視圖外側的水龍頭
- 2. 檢測用戶水龍頭
- 3. 檢測背景水龍頭
- 4. UIScrollView檢測水龍頭
- 5. 可視化水龍頭視圖,顯示水龍頭指示器
- 6. 如何檢測上表視圖用戶水龍頭
- 7. 在MK ANNOTATION視圖標註氣泡上檢測到水龍頭
- 8. 檢測UIWebView內的水龍頭
- 9. 檢測曲線上的水龍頭?
- 10. 檢測UITableView背景上的水龍頭
- 11. Android Widget檢測水龍頭和雙擊
- 12. iPhone:在MKMapView中檢測水龍頭
- 13. 在動畫UIImageView上檢測水龍頭
- 14. iCarousel在水龍頭上顯示視圖
- 15. 菜單檢測遠離其圖標的水龍頭
- 16. 如何檢測Palm Pre上的手勢區域的水龍頭?
- 17. Unity3d如何檢測android上的水龍頭?
- 18. 如何檢測MKPolylines /覆蓋像Maps.app上的水龍頭?
- 19. 如何檢測UITextView下劃線的水龍頭?
- 20. UICollectionView:測量單元水龍頭的力
- 21. ios如何使UITextView檢測一個水龍頭?
- 22. 當手機被鎖定時,我如何檢測水龍頭手勢
- 23. 檢測UITextView中的鏈接/數字的水龍頭
- 24. DatePicker在水龍頭外不能關閉
- 25. 統一檢測球體上的水龍頭
- 26. TabBar只檢測長時間的水龍頭
- 27. iPhone +檢測到禁用的水龍頭UIControl
- 28. 在uiscrollview中檢測uiimageview中的水龍頭
- 29. 如何知道水龍頭是在視圖內還是在外部很快
- 30. 當UIPopoverController處於活動狀態時,UIWebView無法檢測到水龍頭
您嘗試過touchesBegan:方法 – ankit
您可能想要在包含當前視圖的視圖上添加tapGesture。 – Larme
我這樣做:https://stackoverflow.com/a/48790850/7132300 – algrid