Я бы хотел заменить логотип MKPointAnnotation по умолчанию на пользовательский.Пользовательское изображение на MKPointAnnotation
Так что я написал этот код в моем MapViewController:
import UIKit
import MapKit
import CoreLocation
class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
@IBOutlet weak var myMap: MKMapView!
let locationManager = CLLocationManager()
var monPin:CustomPointAnnotation!
var pinAnnotationView:MKPinAnnotationView!
override func viewDidLoad() {
super.viewDidLoad()
//Mark: - Authorization
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
myMap.delegate = self
myMap.mapType = MKMapType.standard
myMap.showsUserLocation = true
let location = CLLocationCoordinate2D(latitude: 43.2885108, longitude:5.3855545000000124)
let center = location
let region = MKCoordinateRegionMake(center, MKCoordinateSpan(latitudeDelta: 0.025, longitudeDelta: 0.025))
myMap.setRegion(region, animated: true)
monPin = CustomPointAnnotation()
monPin.pinCustomImageName = "mapIcon"
monPin.coordinate = location
monPin.title = "Mon titre"
monPin.subtitle = "mon Sous titre"
pinAnnotationView = MKPinAnnotationView(annotation: monPin, reuseIdentifier: "pin")
myMap.addAnnotation(pinAnnotationView.annotation!)
}
//MARK: - Custom Annotation
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
let reuseIdentifier = "pin"
var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier:reuseIdentifier)
if annotationView == nil {
annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: reuseIdentifier)
annotationView?.canShowCallout = true
} else {
annotationView?.annotation = annotation
}
let customPointAnnotation = annotation as! CustomPointAnnotation
annotationView?.image = UIImage(named: customPointAnnotation.pinCustomImageName)
return annotationView
}
Где monPin.pinCustomImageName = "mapIcon" относится к моему xassets
Но это только показать классическое MKPointAnnotation изображения (это одно: https://i.stack.imgur.com/pD82c.png)
** И я думаю, проблема в том, что: ** функция mapView не называется нигде, потому что я попробовал простую печать («привет») в ней, и она не появляется в консоли и даже если я удалю все этот код функции , это ничего не меняет в моем приложении.
Вот почему мне интересно, как я мог столкнуться с этой проблемой.
Я не понимаю 100% моего кода, потому что я взял его из пользователя переполнения стека, я имею в виду, что я понимаю весь код, кроме части mapView().