Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIView抽头识别器不工作_Ios_Swift_Uiview_Uigesturerecognizer_Uitapgesturerecognizer - Fatal编程技术网

Ios 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

尝试在UIView上进行工作点击识别:

@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_)把你的视图放在前面怎么样?已经是了,我不能在子视图上点击地图了。你能发布整个代码吗?因为如果两个答案都不起作用,我们需要看看到底是什么错了