He subclasificado MKAnnotationView para crear una anotación que básicamente dibuja un círculo alrededor de un punto en una vista de mapa mediante la anulación de drawRect. El círculo se basa bien en las siguientes situaciones (en el simulador):MKAnnotationView desapareciendo al deslizar y hacer doble clic en el zoom
- En la carga inicial de la vista de mapa
- El golpe, pero sólo cuando el movimiento se detiene antes de deslizar extremos táctiles (de modo que el mapa no lo hace "costa" después de que termine el tacto)
- El zoom pizca
El círculo desaparecerá cuando cualquiera de las siguientes acciones:
- golpe fuerte en el mapa "costas" después toque los extremos de zoom
- Pulse dos veces
El círculo volverá a aparecer si alguna de las acciones en el grupo de "trabajo" se toman después de que haya desaparecido.
¿Qué podría causar esto? No soy un experto en dibujar/mostrar/diseño (francamente, tampoco soy un experto en obj C o iPhone).
Aquí hay un código ligeramente simplificada que parece más relevante de mi subclase MKAnnotationView:
- (void)drawRect:(CGRect)rect {
// Drawing code
[self drawCircleAtPoint:CGPointMake(0,0) withRadius:self.radiusInPixels andColor:self.circleAnnotation.color];
}
- (void)drawCircleAtPoint:(CGPoint)p withRadius:(int)r {
CGContextRef contextRef = UIGraphicsGetCurrentContext();
float alpha = 0.75;
CGContextSetRGBFillColor(contextRef, 255, 0, 0, alpha);
CGContextSetRGBStrokeColor(contextRef, 255, 0, 0, alpha);
// Draw a circle (border only)
CGContextStrokeEllipseInRect(contextRef, CGRectMake(0, 0, 2*r, 2*r));
}
también ver este comportamiento, en busca de una solución ... –
Incluso estoy enfrentando el mismo problema, ¿hay algo de suerte? – Ameya
es el drawRect llamado en absoluto en el grupo de trabajo "no"? – Magnus