Estoy intentando dibujar algunas superposiciones de círculo que contienen texto en MKMapView. He subclasificado el MKCircleView, en el que pongo lo siguiente (basado en this), pero el texto no aparece. Los círculos aparecen correctamente. (También probé la solución de la primera respuesta, el mismo resultado).Dibujar texto en superposición de círculo
-(void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context {
[super drawMapRect:mapRect zoomScale:zoomScale inContext:context];
NSString * t= @"XXXXX\nXXXX" ;
UIGraphicsPushContext(context);
CGContextSaveGState(context);
[[UIColor redColor] set];
CGRect overallCGRect = [self rectForMapRect:[self.overlay boundingMapRect]];
NSLog(@"MKC : %lf, %lf ----> %lf , %lf ", mapRect.origin.x ,mapRect.origin.y , overallCGRect.origin.x, overallCGRect.origin.y);
[t drawInRect:overallCGRect withFont:[UIFont fontWithName:@"Arial" size:10.0] lineBreakMode:UILineBreakModeClip alignment:UITextAlignmentCenter];
CGContextRestoreGState(context);
UIGraphicsPopContext();
}
Cuando la depuración, consigo valores como estos
MKC : 43253760.000000, 104071168.000000 ----> 1.776503 , 1.999245
MKC : 43253760.000000, 104071168.000000 ----> -1.562442 , -2.043090
¿Son normales? Qué me estoy perdiendo ?
Gracias.
Combinando esto con la respuesta a continuación resuelto mi pregunta sobre cómo dibujar el texto. Sin embargo, mi texto se centra horizontalmente, pero verticalmente se dibuja en la parte superior de mi MKCircleView. ¿Está tuyo centrado vertical y horizontalmente? – Diziet
Estaba calculando mal la ubicación del texto. Hohum. : P – Diziet
Si alguien lo necesita, así es como centrado el texto en el círculo, teniendo en cuenta el ancho y alto del texto: 'Tamaño CGSize = [str sizeWithFont: [UIFont fontWithName: @" Arial "size: 9]]; CGPoint center = CGPointMake (circleRect.origin.x + circleRect.size.width /2,circleRect.origin.y + circleRect.size.height/2); CGPoint textstart = CGPointMake (center.x - size.width/2, center.y - size.height/2); ' – Templar