Estoy tratando de hacer una vista de anotación personalizada mediante la subclasificación de MKAnnotationView
y anulando el método drawRect
. Quiero que la vista se dibuje desplazada de la posición de la anotación, algo así como MKPinAnnotationView
, de modo que la punta del pin esté en las coordenadas especificadas, en lugar de en el medio del pin. Así que configuro la posición y el tamaño del marco como se muestra a continuación. Sin embargo, no parece que pueda afectar la posición del marco, solo el tamaño. La imagen termina siendo dibujada centrada sobre la posición de anotación. ¿Algún consejo sobre cómo lograr lo que quiero?¿Cómo cambio la posición del marco para una MKAnnotationView personalizada?
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];
}
Sí, que trabaja para una vista de anotación basada en imágenes (que en realidad es suficiente para mis propósitos). Pero todavía tengo curiosidad sobre el caso general. – andrei