こんにちは sohnishi です。
今回はMKMapViewでピンを表示させ、デフォルトのピンを画像に変えてみたいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
func setMapPin(latitude: CLLocationDegrees, longitude: CLLocationDegrees) { // pin生成 let pin = MKPointAnnotation() // 位置情報 let coordinate: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude,longitude) // pinに位置情報を渡す pin.coordinate = coordinate //pinを立てる mapView.addAnnotation(pin) } //addAnnotationした際に呼ばれるデリゲートメソッド func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { let identifier = "pin" var annotationView: MKAnnotationView! if annotationView == nil { annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier) } // pinに表示する画像を指定 annotationView.image = UIImage(named: " hoge_pin_img")! annotationView.annotation = annotation annotationView.canShowCallout = true return annotationView } |
以上です。
まずは、指定座標にpinを立てて、デリゲートメソッド内で任意の画像を指定してあげます。
デリゲートメソッドを使えば、pinをタップされた時に画像を変えてあげることもできます。