• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 以编程方式创建 UIImage 以在谷歌地图上显示标记?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 23:18:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在我的应用程序中,我集成了适用于 iOS 的 Google map SDK。我想在上面显示带有序列号的标记。如 this image 标记的数量将在运行时决定,所以我不能简单地为每个标记放置一个法师,我必须以某种方式创建它。我有一张没有序列的图像。我的想法是使用该图像创建图像并在创建时在其上写上数字。但不知道如何。 任何帮助,将不胜感激。



Best Answer-推荐答案


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

-(UIImage *)getImage UIImage *)icon stopNSString *)stopNumber colorUIColor *)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;
}

在 Swift 中使用

func getImage(_ icon: UIImage?, stop stopNumber: String?, color: UIColor?) -> UIImage? {
    // create label
    let label = UILabel(frame: CGRect(x: 0, y: 0, width: icon?.size.width ?? 0.0, height: icon?.size.height ?? 0.0))
    label.text = stopNumber
    label.textColor = color
    label.font = FontFamily.Metropolis.semiBold.font(size: 15)
    label.textAlignment = .center
    
    //start drawing
    UIGraphicsBeginImageContext(icon?.size ?? CGSize.zero)
    
    //draw image
    icon?.draw(in: CGRect(x: 0, y: 0, width: icon?.size.width ?? 0.0, height: icon?.size.height ?? 0.0))
    
    //draw label
    label.drawText(in: CGRect(x: ((icon?.size.width ?? 0.0) - label.frame.size.width) / 2, y: -3, width: label.frame.size.width, height: label.frame.size.height))
    
    //get the final image
    let resultImage = UIGraphicsGetImageFromCurrentImageContext()
    
    UIGraphicsEndImageContext()
    return resultImage
}

关于ios - 以编程方式创建 UIImage 以在谷歌地图上显示标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409028/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap