Abbiamo visto un comportamento imprevisto in una delle nostre app: una schermata mostra annotazioni su una visualizzazione mappa e l'utente può modificare le annotazioni visualizzate facendo clic su pulsante.MKMapView - setRegion: animato rende MKMapView non risponde su iOS7
Quando ricostruiamo l'app con iOS7 lo schermo si blocca regolarmente, cioè non è più possibile l'input dell'utente su MKMapView dopo che il codice sottostante è stato chiamato più volte (con diversi set di annotazioni) - la vista è incorporata in entrambi una barra delle linguette e un controller nav e tutti i loro elementi dell'interfaccia utente funzionavano ancora, ma la mapview stessa non accettava alcun input dell'utente (pizzicamento/zoom).
Il codice che mostra le annotazioni è qui:
[self.mapView removeAnnotations:self.mapView.annotations];
for (MyObject *my in self.mydata)
{
MyAnnotation *annotation = [MyAnnotationFactory createAnnotationFor:my];
[self.mapView addAnnotation:annotation];
}
CLLocationCoordinate2D mycenter;
mycenter.latitude = -38.967659;
mycenter.longitude = 172.873534;
[self.mapView setRegion:MKCoordinateRegionMake(mycenter, MKCoordinateSpanMake(15, 18))
animated:YES];
[self.mapView setCenterCoordinate:mycenter];
Quello che ho trovato è che modificando la regione senza la anima, cioè modificando il codice sopra per
[self.mapView setRegion:MKCoordinateRegionMake(mycenter, MKCoordinateSpanMake(15, 18))
animated:NO];
la il problema scompare e MKMapView si comporta bene anche su iOS7.
Se avete un'idea di perché questo sta accadendo, e perché sta accadendo solo in iOS7 e non per le versioni precedenti, apprezzerei il chiarimento.
Ho riscontrato lo stesso identico problema. Purtroppo non ho ancora trovato una soluzione. – Jonathan
Stai facendo causa al threading? – latenitecoder