Как показать UIView чуть выше булавки MKpointAnnotation

Я хочу показать UIView чуть выше местоположения булавки, и если пользователь перемещается по карте, UIView должен оставаться выше местоположения булавки. Я не хочу использовать пузырь выноски. Есть ли другой путь?

2 ответа

В iOS 9 у нас есть новое свойство с именем detailCalloutAccessoryView

Вы можете создать вид и установить как

annotationView.detailCalloutAccessoryView = tempView 

Пожалуйста, проверьте ссылку, чтобы получить более подробную информацию

MapKit iOS 9 detailCalloutAccessory Просмотр использования

Попробуйте использовать этот код:

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
}

Это в основном то, что вам нужно, чтобы это работало. Это быстрая версия этого ответа прямо здесь: Как создать пользовательский MKAnnotationView и пользовательские заголовок и подзаголовок аннотации

Надеюсь, это помогло!!!

Другие вопросы по тегам