Sto tentando di implementare una finestra di informazioni personalizzate sul mio Google Maps Marker su un'app iOS. (Come è fatto per esempio here e here)L'app iOS si blocca durante il caricamento della finestra di informazioni personalizzate per il marker su Google Maps
Ho creato una classe xib e una classe UIView
per questo. Si chiama CustomInfoWindow.xib
e la classe è CustomInfoWindow.swift
.
La finestra Informazioni personali è attualmente vuota, ovvero non ho ancora aggiunto alcun UIControl
s al mio xib. Non ho ancora aggiunto alcun codice al mio file di classe.
Il file CustomInfoWindow.swift
appare fondamentalmente come:
import UIKit
class CustomInfoWindow: UIView {}
Nel mio ViewController per le mie mappe mio metodo markerInfoWindow
è il seguente:
func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
let customInfoWindow = NSBundle.mainBundle().loadNibNamed("CustomInfoWindow", owner: self, options: nil)[0] as! CustomInfoWindow
return customInfoWindow
}
Quando eseguo il codice e clicco su uno dei miei marcatori, il vuoto CustomInfoWindow
visualizza bene.
La cosa strana è che nel momento in cui aggiungo un elemento dell'interfaccia utente allo CustomInfoWindow.xib
nel Generatore di interfacce ed eseguo nuovamente la mia app, quindi all'improvviso quando clicco su un marker l'app si blocca. (Ad esempio quando aggiungo uno UILabel
o uno UIImage
allo CustomInfoWindow.xib
.) Se rimuovo l'elemento dell'interfaccia utente, il pennino vuoto viene visualizzato correttamente sopra l'indicatore.
Se eseguo il test del pennino aggiungendolo come sottoview su alcuni controller di visualizzazione, questo viene caricato correttamente con il mio UILabel
e UIImage
. Tuttavia, quando uso lo stesso pennino nello markerInfoWindow
l'app si blocca.
Quale può essere il problema?
AGGIORNAMENTO: Questo problema si è verificato sulla versione 1.13 di Google Maps SDK per iOS e si è rivelato essere un bug on that version.
cosa si ottiene alcun errore di crash? –
no - l'app si blocca solo sul simulatore. Quando imposto un breakpoint su "return customInfoWindow", il breakpoint viene comunque colpito ma dopo di ciò, se continuo l'esecuzione del programma, viene bloccato e devo interrompere il simulatore. – Stanley
stesso problema con il dispositivo? perché può essere un problema con il simulatore. –