Sto tentando di utilizzare una vista annotazione e callout della mappa personalizzata piuttosto semplice, la vista annotazione quando la creo, ma aggiunge un UIImageView come sottoview a se stesso. Funziona beneEccezione MKMapKit quando si utilizza canShowCallout nella vista annotazione
Tuttavia, quando chiamo canShowCallout nella vista annotazione, un'eccezione viene generata in MapKit immediatamente dopo aver restituito la vista. La fine della risma assomiglia:
#0 0x94e964e6 in objc_exception_throw
#1 0x01e26404 in -[MKOverlayView _addViewForAnnotation:]
#2 0x01e22037 in -[MKOverlayView _addViewsForAnnotations:animated:]
#3 0x01e1ddf9 in -[MKOverlayView showAddedAnnotationsAnimated:]
#4 0x01df9c0e in -[MKMapView _showAddedAnnotationsAndRouteAnimated:]
#5 0x01e0371a in -[MKMapView levelView:didLoadTile:]
mio viewForAnnotation è piuttosto semplice:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if (! [annotation isKindOfClass:[MyAnnotation class]])
return nil;
MyAnnotationView *useView = (MyAnnotationView *)[myMapView dequeueReusableAnnotationViewWithIdentifier:@"resuseview"];
if (useView == nil)
{
useView = [[[MyAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"resuseview"] autorelease];
useView.canShowCallout = YES; // if commented out view appears just fine
}
else
{ useView.annotation = annotation; }
return useView;
}
Come osservato nel codice, la vista annotazione funziona bene come è - fino a quando aggiungo canShowCallout, poi si blocca la prima volta che la mappa ottiene la vista.
grazie Kendall –