2017-09-09 1 views
1

Hilf mir, das Problem zu lösen. Ich versuche, einen langen Klick auf die Karte in Google Maps zu verfolgen, aber ich kann es nicht tun. Hier ist ein Beispiel meines Codes:Lange drücken in Google Maps

import UIKit 
import GoogleMaps 

class ViewController: UIViewController { 
@IBOutlet var mMap: GMSMapView! 

var longPressRecognizer = UILongPressGestureRecognizer() 

@IBAction func longPress(_ sender: UILongPressGestureRecognizer) { 
    testTextview.text = "You tapped at YES" 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

longPressRecognizer = UILongPressGestureRecognizer(target: self, 
action: #selector(self.longPress)) 
longPressRecognizer.minimumPressDuration = 0.5 
mMap.addGestureRecognizer(longPressRecognizer) 

mMap.isMyLocationEnabled = true 
mMap.settings.compassButton = true 
mMap.camera = GMSCameraPosition.camera(withLatitude: 54.9044200, 
longitude: 52.3154000, zoom: 15.0) 
} 
} 

Die Verwendung dieses Codes passiert nicht. Ich habe alle Methoden ausprobiert, die auf stackoverflow waren, aber auch nichts ist passiert. diese Methode, um Ihre Viewcontroller

+0

Hallo there- was ist, wenn Sie die @IBAction Dekorateur aus der Funktion entfernen geschieht? (Sie müssen es möglicherweise durch @objc ersetzen). – Sparky

+0

diese Methode funktioniert auch nicht – ildar1989

+0

@ ildar1989 keine Rückmeldung dazu? –

Antwort

0

GMSMapView Klasse haben viele verschiedene Gesten Erkenner, so dass Sie hinzufügen müssen eine UIGestureRecognizerDelegate Implementierung Zugabe shouldRecognizeSimultaneouslyWith

hier ist das, was Sie

hinzufügen ändern müssen

extension ViewController : UIGestureRecognizerDelegate 
{ 
    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool 
    { 
     return true 
    } 
} 

hinzufügen

longPressRecognizer.delegate = self 

unterhalb dieser LinielongPressRecognizer.minimumPressDuration = 0.5

vollständigen Code

import UIKit 
import GoogleMaps 

class ViewController: UIViewController { 
@IBOutlet var mMap: GMSMapView! 

var longPressRecognizer = UILongPressGestureRecognizer() 

@IBAction func longPress(_ sender: UILongPressGestureRecognizer) { 
    testTextview.text = "You tapped at YES" 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

longPressRecognizer = UILongPressGestureRecognizer(target: self, 
action: #selector(self.longPress)) 
longPressRecognizer.minimumPressDuration = 0.5 
longPressRecognizer.delegate = self 
mMap.addGestureRecognizer(longPressRecognizer) 

mMap.isMyLocationEnabled = true 
mMap.settings.compassButton = true 
mMap.camera = GMSCameraPosition.camera(withLatitude: 54.9044200, 
longitude: 52.3154000, zoom: 15.0) 
} 
} 

extension ViewController : UIGestureRecognizerDelegate 
    { 
     public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool 
     { 
      return true 
     } 
    } 
+1

Ja, es funktioniert. Du bist ein Genie. – ildar1989