Назначить изображение аннотации вместо булавки
Привет, ребята. Я пытаюсь заменить булавку на моей аннотации на пользовательское изображение.
У меня уже есть изображения в моем списке image.cassette будет отображаться 1X 2X 3X и т. Д., Но как только я пытаюсь вызвать это изображение, я получаю сообщение об ошибке в моем коде, где Xcode
пытается исправить мой синтаксис, но в конечном итоге выдает его как ошибку
мой код, указанный ниже, переопределяет func
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
guard !(annotation is MKUserLocation) else {
return nil
}
let annotationIdentifier = "AnnotationIdentifier"
var annotationView: MKAnnotationView?
if let dequeuedAnnotationView = mapView.dequeueReusableAnnotationView(withIdentifier: annotationIdentifier) {
annotationView = dequeuedAnnotationView
annotationView?.annotation = annotation
}
else {
annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier)
annotationView?.rightCalloutAccessoryView = UIButton(type: .detailDisclosure)
}
if let annotationView = annotationView {
annotationView.canShowCallout = true
annotationView.image = UIImage(named: "House")
}
return annotationView
}
Сейчас Xcode
обнаруживает ошибку здесь в коде annotationView.image = UIImage(названный: "Дом"), где это просит вставить ",", и конечный результат выглядит следующим образом
annotationView.image = UIImage(named: "#imageLiteral(resourceName: ",House,")")
Xcode
будет отображаться ошибка использования неразрешенного идентификатора "Дом"
2 ответа
Swift 3 представляет Image Literals. Просто напишите "Imag".. и он откроет всплывающее окно с опцией Image Literal. как на картинке ниже:
Выбрав опцию "Image Literal", он отобразит все доступные изображения ресурсов,
Выберите изображение, которое вы хотите использовать из сетки.
для более подробной информации, см. это
Этот код помог мне исправить мою проблему
let pinImage = UIImage(named: "House.png")
annotationView.image = pinImage
но теперь у меня есть проблема, когда моя карта больше не центрирована