我希望复制Google地图应用的行为,如果标签与其他标签或图标重叠,动态隐藏标签。
像这样:
我目前的设置是带有GMSMarkers的GMSMapView,它有自定义图标(UIImages):
由于SDK没有提供将标签添加到标记的方法,因此标记和标签按照这样的UIImage分组:
let label = UILabel() //simplified
let iconView = UIImageView //simplified
UIGraphicsBeginImageContextWithOptions(label.frame.size, false, UIScreen.main.scale)
if let currentContext = UIGraphicsGetCurrentContext() {
iconView.layer.render(in: currentContext)
let iconAndLabel = UIGraphicsGetImageFromCurrentImageContext()
marker.icon = iconAndLabel
}
UIGraphicsEndImageContext()