2016-08-21 41 views
0

GMSMapViewDelegateが実装されており、selfに設定されていますが、デリゲート関数を動作させることができません。以下は私のコードの例です:GMSMapViewDelegate関数がiOSで呼び出されていない

class UserViewController: UIViewController, CLLocationManagerDelegate, GMSMapViewDelegate { 

    var mapView: GMSMapView! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     if mapView == nil { 
      mapView = GMSMapView() 
     } 

     mapView.delegate = self 

    } 

    func mapView(mapView: GMSMapView, didChangeCameraPosition position: GMSCameraPosition) { 
     print(position) 
    } 

    func mapView(mapView: GMSMapView, willMove gesture: Bool) { 
     print(gesture) 
    } 

    func mapView(mapView: GMSMapView, idleAtCameraPosition position: GMSCameraPosition) { 
     print(position) 
    } 

mapView関数は何も印刷していません。私はデリゲートをチェックし、それが適切に設定されていることを知っています。何か不足していますか?

+0

場所やマーカーの設定など、Googleマップの他の側面を使用しても問題はありません。私が問題を抱えているのはDelegateの機能だけです。 –

+1

これらを実装したい場所にあなたのコードを書いてください。あなたの投稿を編集してください:)本当にそうでなければ助けてください。 - http://stackoverflow.com/help/how-to-ask – Dravidian

+0

あなたのマップビューから現在のクラスへの接続が与えられていますか? –

答えて

0

だから私は
if mapView == nil { mapView = GMSMapView() }
後に、デリゲートを設定することは正しいだろうと思ったが、そうではありません。私は実際の境界を後の関数で設定しました
mapView = GMSMapView.mapWithFrame(CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height), camera: camera) そして、一度私はmapView.delegate = selfを配置した後に動作します!

関連する問題