Ios UIView抽头识别器不工作
尝试在UIView上进行工作点击识别:Ios UIView抽头识别器不工作,ios,swift,uiview,uigesturerecognizer,uitapgesturerecognizer,Ios,Swift,Uiview,Uigesturerecognizer,Uitapgesturerecognizer,尝试在UIView上进行工作点击识别: @IBOutlet weak var mapView_: GMSMapView! @IBOutlet weak var viewInfo: UIView! override func viewDidLoad() { super.viewDidLoad() /* MapView inital values & dependencies */ let initialLocation = CLLocationCoordinate
@IBOutlet weak var mapView_: GMSMapView!
@IBOutlet weak var viewInfo: UIView!
override func viewDidLoad() {
super.viewDidLoad()
/* MapView inital values & dependencies */
let initialLocation = CLLocationCoordinate2DMake(37.78, -122.41)
let camera = GMSCameraPosition.cameraWithTarget(initialLocation, zoom: 10)
/* Set up MapView */
mapView_.camera = camera
mapView_.myLocationEnabled = true
mapView_.delegate = self
var selfTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "viewTapped:")
viewInfo.addGestureRecognizer(selfTap)
viewInfo.userInteractionEnabled = true
mapView_.insertSubview(viewInfo, aboveSubview: mapView_)
}
func viewTapped(recognizer: UIGestureRecognizer) -> Void{
NSLog("tapped")
}
它不认识水龙头
有什么想法吗?
谢谢您需要从
handleTap:
中删除:
,或者您需要将方法更改为handleTap(发送者:UITapGestureRecognitizer)
使用:
func handleTap(发送方:UITapGestureRecognizer){
NSLog(“抽头”)
}
问题“已解决”
出现此问题的原因是viewInfo是googlemaps视图的子视图。
我无法将tap事件委托给viewcontroller,因此我假设事件“tap”正在发送到mapview
我从mapview中取出了viewInfo,并在我想要的地方玩了一些约束。因此,viewInfo的父级现在是viewcontroller,可以毫无问题地识别点击事件
我想这不是更好的解决方案,因为在情节提要中移动子视图时,我们需要非常小心,以免它成为mapview的一部分,但暂时我不知道如何将子视图委托给viewcontroller
谢谢大家的帮助。尝试了两种选择,但仍然无法识别。我的代码是:var selfTap:UITapGestureRecognizer=UITapGestureRecognizer(目标:self,操作:“viewtaped:”selfTap.numberOfTapsRequired=1 backGrayView.addgesturecognizer(selfTap);backGrayView.userInteractionEnabled=true;func viewtaped(recognizer:uigesturecognizer)->Void{if recognizer.numberoftoffices()=1{CODE HERE}}奇怪,仍然不起作用,复制并粘贴你的代码,对我的视图稍加修改。有可能是google地图上的子视图吗?mapView_.insertSubview(viewInfo,上面的子视图:mapView_)把你的视图放在前面怎么样?已经是了,我不能在子视图上点击地图了。你能发布整个代码吗?因为如果两个答案都不起作用,我们需要看看到底是什么错了