user7459574
user7459574

Reputation:

mapKit not display annotation

My code is not displaying the title or subtitle of the each pins. The pins appear on there coordinates. However when clicking on the pins nothing appears. I would just like the pins to be different colors and when clicked on they display a message.

import UIKit
import MapKit

class MyPointAnnotation : MKPointAnnotation {
var pinTintColor: UIColor?
}

class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet var jmap: MKMapView!

override func viewDidLoad() {
    super.viewDidLoad()

    jmap.delegate = self

    let hello = MyPointAnnotation()
    hello.coordinate = CLLocationCoordinate2D(latitude: 40, longitude: -73)
    hello.title = "My Shop"
    hello.subtitle = "its cool"
    hello.pinTintColor = .red


    let hellox = MyPointAnnotation()

    hellox.coordinate = CLLocationCoordinate2D(latitude: 34, longitude: -72)

    hellox.title = "NOW"

    hellox.title = "JUdo"
    hellox.pinTintColor = .blue

    jmap.addAnnotation(hello)
    jmap.addAnnotation(hellox)
}

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "myAnnotation") as? MKPinAnnotationView

    if annotationView == nil {
        annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "myAnnotation")
    } else {
        annotationView?.annotation = annotation
    }

    if let annotation = annotation as? MyPointAnnotation {
        annotationView?.pinTintColor = annotation.pinTintColor



    }
    return annotationView
    }}

Upvotes: 1

Views: 151

Answers (1)

Grifas
Grifas

Reputation: 217

Add annotationView?.canShowCallout = true before to return annotationView

Upvotes: 1

Related Questions