如何在MKpointAnnotation Pin上方显示UIView

时间:2016-12-27 11:35:43

标签: ios swift mkmapview mkannotation mkpointannotation

我想在引脚位置上方显示UIView,如果用户在地图上移动,UIView应保持在引脚位置上方。我不想使用标注泡泡。还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

在iOS 9中,我们有一个名为detailCalloutAccessoryView

的新属性

您可以创建视图并设置为

annotationView.detailCalloutAccessoryView = tempView 

请查看链接以获取更多详细信息

MapKit iOS 9 detailCalloutAccessoryView usage

答案 1 :(得分:0)

尝试使用此代码:

func mapView(_ mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView {
    if (annotation is MKUserLocation) {
        return nil
    }
    else if (annotation is YourAnnotationClassHere) {
        let identifier = "MyCustomAnnotation"
        var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)
        if annotationView {
            annotationView.annotation = annotation
        }
        else {
            annotationView = MKAnnotationView(annotation, reuseIdentifier: identifier)
        }
        annotationView.canShowCallout = false
        // set to YES if using customized rendition of standard callout; set to NO if creating your own callout from scratch
        annotationView.image = UIImage(named: "your-image-here.png")!
        return annotationView
    }

    return nil
}

这主要是你需要的工作。这是这个答案的快速版本:How to create Custom MKAnnotationView and custom annotation title and subtitle

希望它有所帮助!!!