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