以编程方式为谷歌地图上的节目标记创建UIImage?

时间:2014-06-25 12:44:01

标签: ios objective-c google-maps google-maps-sdk-ios

在我的应用中,我整合了适用于iOS的Google地图sdk。我希望在其上显示带有序列号的标记。如this image 标记的数量将在运行时确定,因此我不能简单地为每个标记放置一个图像,不知何故我必须以编程方式创建它。我是一张没有序列的图像。我的想法是使用该图像创建一个图像,并在创建它时在其上写入数字。但不知道如何。 任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

感谢@knshn给我评论中的链接。这是我的解决方案

-(UIImage *)getImage :(UIImage *)icon stop:(NSString *)stopNumber color:(UIColor *)color
{
     // create label
     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, icon.size.width,icon.size.height)];
     [label setText:stopNumber];
    [label setTextColor:color];
    [label setFont:[UIFont boldSystemFontOfSize:11]];
    label.textAlignment = NSTextAlignmentCenter;

     // use UIGraphicsBeginImageContext() to draw them on top of each other

     //start drawing
     UIGraphicsBeginImageContext(icon.size);

     //draw image
     [icon drawInRect:CGRectMake(0, 0, icon.size.width, icon.size.height)];

     //draw label
     [label drawTextInRect:CGRectMake((icon.size.width - label.frame.size.width)/2, -5, label.frame.size.width, label.frame.size.height)];

     //get the final image
     UIImage *resultImage  = UIGraphicsGetImageFromCurrentImageContext();

     UIGraphicsEndImageContext();
    return resultImage;
}