有没有办法检测当前视图之外的任何水龙头?我没有试图用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