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.
erhalten Sie jede Absturzfehler? –
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
das gleiche Problem mit dem Gerät? weil es ein Simulatorproblem sein kann –