我試圖在使用MKOverlayRenderer的地圖上繪製文本。我有一個現有的,功能強大的MKOverlayRenderer呈現一組點,所以我唯一的問題就是爲' - (void)drawMapRect:(MKMapRect)中的每個點渲染一段文本mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)上下文「功能。使用MKOverlayRenderer繪製文本
我通過SO和Google發現的所有解決方案均使用註釋或UILabels。但是我想讓文本繪圖代碼與渲染點的代碼位於同一位置。也有大約10000點,雖然我確保它不是在同一時間通過縮放和邊界檢查來渲染它們。我確信我不想用其他解決方案創建10,000個對象。
這是當前的測試代碼,我必須嘗試渲染「文本文本」項目之一。它是我在網上找到的一些方法的組合,用於呈現某些東西。
CGPoint* point = self.pointList.pointArray + pointIndex;
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSelectFont(context, "Helvetica", 20.f, kCGEncodingFontSpecific);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGAffineTransform xform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, xform);
CGContextShowTextAtPoint(context, point->x, point->y, "Test Text 1", 11);
CGContextShowTextAtPoint(context, 10, 10, "Test Text 2", 11);
CGContextShowText(context, "Test Text 4", 11);
UIFont* font = [UIFont fontWithName:@"Helvetica" size:12.0];
[@"Test Text 3" drawAtPoint:*point withFont:font];
這是我的第一個SO問題,所以對不起,如果它不是正確的。
編輯:我剛看到放大的文字,只要我可以去,所以意識到我沒有計算縮放比例。假設我需要在渲染之前進行縮放轉換來解決它。目前還沒有解決,但我想我正在路上。