Search code examples
iphonecocoa-touchrefreshmkmapview

Refresh MKAnnotationView on a MKMapView


I'd like to a-synchronically load images for my custom MKAnnotationView; I'm already using the EGOImageView-framework (it goes very well with UITableViews), but I fail to make it work on MKMapView. Images seem to be loaded, but I cannot refresh them on the map - [myMap setNeedsDisplay] does nothing.


Solution

  • I haven't tried it myself, but it might work:
    Get a view for annotation using MKMapView - (MKAnnotationView *)viewForAnnotation:(id <MKAnnotation>)annotation method and set new image to it.

    Edit: Tried to do that myself and this approach worked fine for me:

    //  Function where you got new image and want to set it to annotation view
    for (MyAnnotationType* myAnnot in myAnnotationContainer){
        MKAnnotationView* aView = [mapView viewForAnnotation: myAnnot];
        aView.image = [UIImage imageNamed:@"myJustDownloadedImage.png"];
    }
    

    After calling this method all annotations images were updated.