2016-04-20 20 views
8

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.

+0

cosa si ottiene alcun errore di crash? –

+0

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

+0

stesso problema con il dispositivo? perché può essere un problema con il simulatore. –

risposta

4

Ho lo stesso problema. È un bug di GoogleMaps! Blocco di apperr nella versione 1.13.0.

È possibile utilizzare:

pod 'GoogleMaps', '1.12.3' 
+0

Devo solo specificare quella versione nel mio Podfile o devo fare qualcos'altro dopo questo come un'installazione o un downgrade della libreria o qualcosa del genere? Il solo inserimento della versione nel mio Pod non risolve il problema. – Stanley

+0

Non dimenticare di eseguire 'pod update'. – kolesnikovakate

+0

Grazie, funziona! – Stanley