问题
I'm adding several annotations to a MapView and using a custom image instead of the default pins. I am using the viewForAnnotation
delegate method to set the custom image like this:
view.image = [UIImage imageNamed:@"placemark.png"];
And I've also tried:
[(MKPinAnnotationView *)view setImage:[UIImage imageNamed:@"placemark.png"]];
Now, these both set the image just fine. But when an annotation is either tapped or the mapType
changes to Satellite or Hybrid, it resets back to the red pin image. What am I missing?
回答1:
Don't use MKPinAnnotationView - just use MKAnnotationView.
回答2:
I think I got it. I ended up having to subclass MKAnnotationView.
回答3:
MKAnnotationView* pinView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier] autorelease];
pinView.animatesDrop=YES;
pinView.canShowCallout=YES;
pinView.image=[UIImage imageNamed:@"userMain.png"];
Don't give MKPinAnnotation
its takes default pin annotation. Use only MKAnnotationView
object and don't use:
pinView.animatesDrop=YES;
来源:https://stackoverflow.com/questions/2087738/iphone-mapkit-annotation-images-get-reset-back-to-pins