当我将一个引脚放在叠加层顶部时,引脚的标题似乎被遮挡了。当引脚放置在不在覆盖层顶部的点上时,标题将显示在引脚下方。
字符串lastCoordName是引脚的标题;此字符串从前一个视图控制器传递到当前视图控制器(如下所示)。
以下是一些描述我正在谈论的内容的图片......
当引脚脱离覆盖层时,上图显示引脚正下方的标题(“360”)。
当水平绘制折线并终止覆盖时,仍会显示标题,因此问题不在于线条覆盖标题。
这是自定义引脚类:
class CustomPin : NSObject, MKAnnotation {
var coordinate: CLLocationCoordinate2D
var title: String?
init(coordinate: CLLocationCoordinate2D, title: String) {
self.coordinate = coordinate
self.title = title
super.init()
}
}
viewDidLoad()的相关部分
let pin = CustomPin(coordinate: endPoint, title: lastCoordName)//uses lastCoordName from previous vc (insead of looking up name of last node given coord)
mapView.addAnnotation(pin)
mapView.selectAnnotation(pin, animated: true)
和mapViewController扩展
extension mapViewController: MKMapViewDelegate {
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is SchoolMapOverlay {
return SchoolMapOverlayView(overlay: overlay, overlayImage: #imageLiteral(resourceName: "GBSF1"))
} else if overlay is MKPolyline {
let lineView = MKPolylineRenderer(overlay: overlay)
lineView.strokeColor = UIColor(red:0.2, green:0.48, blue:1.00, alpha:1.0)
lineView.lineWidth = 10.0
return lineView
}
return MKOverlayRenderer()
}
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
let pin = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "pin")
pin.canShowCallout = true
return pin
}
}
叠加层是否覆盖了针脚标题?如果是这样,为什么引脚及其标题不在同一级别(叠加层上方)?
答案 0 :(得分:0)
您可以使用
设置用于绘制叠加层的图层
mapView.add(tileOverlay, level: .aboveRoads)
这会将其绘制在道路上方但在标签下方。问题是,它低于所有标签;因此,根据您在地图中显示的内容,您必须稍微使用标签。