You can use the
MKAnnotationViewclass as is or subclass it to provide custom behavior as needed. The
imageproperty of the class lets you set the appearance of the annotation view without subclassing directly. You might also create custom subclasses as a convenience and use them to put the annotation view in a known state. For example, the
MKPinAnnotationViewsubclass initializes the contents of the annotation view to a pin image.
There are no special requirements for subclassing
MKAnnotationView. However, the following list includes some reasons you might want to subclass and some of the methods you would override to implement the desired behavior:
- To put the annotation view into a consistent state, provide a custom initialization method. Your custom initialization method would then call
initWithAnnotation:reuseIdentifier:to initialize the superclass.
- To provide custom callout views, override the
leftCalloutAccessoryViewmethod and use it to return the views.
If you support draggable annotation views in iOS 4.0 and later, your subclass is responsible for changing the value in the
dragStateproperty to appropriate values at key transition points in the drag operation. For more information, see the description of that property.
– from the iOS developer library.