2016-04-20 4 views
8

Ich versuche, ein benutzerdefiniertes Info-Fenster auf meinem Google Maps-Marker in einer iOS-App zu implementieren. (Zum Beispiel here und here.)iOS-App friert beim Laden von benutzerdefinierten Info-Fenster für Marker in Google Maps ein

Ich habe eine xib und eine UIView Klasse dafür erstellt. Es heißt CustomInfoWindow.xib und die Klasse ist CustomInfoWindow.swift.

Mein Benutzerdatenfenster ist momentan leer, d. H. Ich habe noch keine UIControl s zu meinem xib hinzugefügt. Ich habe meiner Klassendatei noch keinen Code hinzugefügt.

Die CustomInfoWindow.swift Datei sieht im Grunde wie:

import UIKit 
class CustomInfoWindow: UIView {} 

In meinem Viewcontroller für meine Karten meiner markerInfoWindow Methode ist wie folgt:

func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! { 
    let customInfoWindow = NSBundle.mainBundle().loadNibNamed("CustomInfoWindow", owner: self, options: nil)[0] as! CustomInfoWindow 

    return customInfoWindow 
} 

Wenn ich den Code ausführen und ich auf einem Klick meines Marker, die leere CustomInfoWindow zeigt in Ordnung.

Die seltsame Sache ist, dass in dem Moment, als ich ein beliebiges UI-Element zu dem CustomInfoWindow.xib im Interface Builder hinzufügen und meine App erneut ausführen, dann plötzlich, wenn ich auf einen Marker klicke, die App einfriert. (Zum Beispiel, wenn ich eine UILabel oder eine UIImage zu der CustomInfoWindow.xib hinzufügen.) Wenn ich das UI-Element entfernen, zeigt die leere Spitze fein über den Marker.

Wenn ich meine Feder teste, indem ich sie als Unteransicht auf einem View Controller hinzufüge, dann lädt sie gut mit meinem UILabel und UIImage. Wenn ich jedoch die gleiche Feder in der markerInfoWindow verwende, erstarrt die App.

Was kann das Problem sein?

UPDATE: Dieses Problem trat bei Version 1.13 des Google Maps SDK für iOS auf und es stellte sich heraus, dass es sich um eine bug on that version handelt.

+0

erhalten Sie jede Absturzfehler? –

+0

nein - die App friert nur auf dem Simulator. Wenn ich einen Haltepunkt auf "return customInfoWindow" setze, wird der Haltepunkt immer noch getroffen, aber danach, wenn ich die Programmausführung fortsetze, ist er eingefroren und ich muss den Simulator stoppen. – Stanley

+0

das gleiche Problem mit dem Gerät? weil es ein Simulatorproblem sein kann –

Antwort

4

Ich habe das gleiche Problem. Es ist ein GoogleMaps-Bug! Freezing Apperrs in Version 1.13.0.

können Sie verwenden:

pod 'GoogleMaps', '1.12.3' 
+0

Kann ich nur diese Version in meinem Podfile angeben oder muss ich danach etwas anderes machen, wie ein Downgrade einer Installation oder einer Bibliothek? Allein die Version in meinem Podfile löst das Problem nicht. – Stanley

+0

Vergessen Sie nicht, 'pod update' zu ​​starten. – kolesnikovakate

+0

Danke, das funktioniert! – Stanley