Tôi đang cố vẽ một số lớp phủ vòng tròn chứa văn bản trên MKMapView. Tôi đã phân lớp MKCircleView, trong đó tôi đặt sau (dựa trên this), nhưng văn bản không xuất hiện. Các vòng tròn hiển thị chính xác. (Cũng đã thử giải pháp của phản ứng đầu tiên, cùng một kết quả).Vẽ văn bản trong lớp phủ vòng tròn
-(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();
}
Khi gỡ lỗi, tôi nhận được giá trị như thế này
MKC : 43253760.000000, 104071168.000000 ----> 1.776503 , 1.999245
MKC : 43253760.000000, 104071168.000000 ----> -1.562442 , -2.043090
Họ có bình thường không? Tôi đang thiếu gì?
Cảm ơn.
Kết hợp điều này với các câu trả lời dưới đây giải quyết câu hỏi của tôi về làm thế nào để vẽ văn bản. Tuy nhiên văn bản của tôi được căn giữa theo chiều ngang nhưng dọc được vẽ ở đầu MKCircleView của tôi. Là của bạn theo chiều dọc và chiều ngang trung tâm? – Diziet
Tôi đã tính vị trí của văn bản sai. Hohum. : P – Diziet
Nếu có ai cần, đây là cách tôi căn giữa văn bản trong vòng tròn, xem xét chiều rộng và chiều cao của văn bản: 'CGSize size = [str sizeWithFont: [UIFont fontWithName: @" Arial "size: 9]]; Trung tâm CGPoint = 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