作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我将图钉放在叠加层顶部时,图钉的标题似乎被遮挡。当图钉放置在不在叠加层顶部的点上时,标题将出现在图钉下方。
字符串lastCoordName是图钉的标题;该字符串从前一个 View Controller 传递到当前 View Controller (如下所示)。
这里有一些图片来描述我正在谈论的内容......
上图显示了当图钉脱离覆盖层时图钉正下方的标题(“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
}
}
叠加层是否覆盖了图钉标题?如果是这样,为什么图钉及其标题不在同一级别(覆盖层上方)?
最佳答案
您可以设置叠加层绘制的图层mapView.add(tileOverlay, level: .aboveRoads)
这会将其绘制在道路上方但标签下方。问题是,它位于所有标签下方;因此,根据您在 map 中显示的内容,您将不得不稍微使用标签。
关于ios - 放置在覆盖层上时 MapKit 引脚标题不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48369013/
我是一名优秀的程序员,十分优秀!