如何在Swift中动态生成注释图像

时间:2016-10-01 22:04:07

标签: ios swift mapkit

我在地图上显示自定义道路并显示有关道路的详细信息,我需要使用自定义图像(盾牌)显示注释。

但现在我想用道路编号显示盾牌。因为有很多不同的道路,我无法在应用程序中添加所有这些盾牌。我想在应用程序中只保留一个盾牌图像,并在设置为注释图像时动态地在盾牌上写入数字。

Google Maps API中有一个可以执行此任务的IconGenerator库。所以我想在我的iOS Swift应用程序中使用MKMapKit做同样的事情。

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果你知道你的图像总是某些尺寸(例如正方形),那么你就知道这个数字的空白区域在哪里。您可以创建一个DynamicShield类,它具有公共图像和UILabel,可根据公共屏蔽图像的尺寸定位文本。

答案 1 :(得分:0)

我创建了imageview并在image中添加了labelimageview,并将imageview设置为注释图片。

let annotationview = MKAnnotationView.init(annotation: annotationPoint, reuseIdentifier: "xyz")
annotationview.canShowCallout = true

var imageview = UIImageView(frame: CGRect(x: -15, y: -15, width: 30, height: 30))
var label = UILabel()
label.frame = CGRect(x: 0, y: 1, width: 30, height: 30)
label.textAlignment = .Center
label.font = UIFont.boldSystemFontOfSize(12)
label.textColor = UIColor.GrayColor()
label.text = “my-text”
imageview.addSubview(label)

imageview.image = UIImage(named: “image-name”)
annotationview.addSubview(imageview)

return annotationview