он работает с пользовательским классом mkAnnotation, я не уверен, что это лучший метод или нет, но он работает в моем приложении. попробуйте что-то вроде этого ...
class SightMap: NSObject, MKAnnotation {
let identifier = "pinImage"
//+ something else, for example
var image: UIImage?
}
///somewhere in your code
let sightmap = SightMap(...init...)
map?.addAnnotation(sightmap)
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
let view = MKAnnotationView(annotation: annotation, reuseIdentifier: "pinImage")
view.addSubview(YOUR_IMAGE)
view.addSubview(YOUR_label)
}