How do I change the frame position for a custom MKAnnotationView?
iphone, mapkit, mkannotation
Solution
Rather than subclass MKAnnotationView, have you tried using a generic MKAnnotationView and setting the `image` and `centerOffset` properties?
Problem
I am trying to make a custom annotation view by subclassing `MKAnnotationView` and overriding the `drawRect` method. I want the view to be drawn offset from the annotation's position, somewhat like `MKPinAnnotationView` does it, so that the point of the pin is at the specified coordinates, rather than the middle of the pin. So I set the frame position and size as shown below. However, it doesn't look like I can affect the position of the frame at all, only the size. The image ends up being drawn centered over the annotation position. Any tips on how to achieve what I want? MyAnnotationView.h: ``` @interface MyAnnotationView : MKAnnotationView { } ``` MyAnnotationView.m: ``` - (id)initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier]) { self.canShowCallout = YES; self.backgroundColor = [UIColor clearColor]; // Position the frame so that the bottom of it touches the annotation position self.frame = CGRectMake(0, -16, 32, 32); } return self; } - (void)drawRect:(CGRect)rect { [[UIImage imageNamed:@"blue-dot.png"] drawInRect:rect]; } ```