AnnotationETA 0.1.2

AnnotationETA 0.1.2

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Feb 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Marek Fort.



AnnotationETA

AnnotationETA

AnnotationETA will easily let you implement MapKit annotations with slick pins, custom colors and cool calloutView showing ETA out of the box!

demo

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Installation

Manually

Include all the files under AnnotationETA/Classes into your project.

Set Up

In func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) set your MKAnnotationView to AnnotationEtaView:

let annotationEtaView = EtaAnnotationView(annotation: annotation, reuseIdentifier: "etaAnnotationIdentifier")
annotationView = annotationEtaView

To display ETA when the annotation is selected:

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
guard let annotation = view.annotation else {return}
if annotation is MKUserLocation {return}

view.leftCalloutAccessoryView = DirectionButton(destinationCoordinate: annotation.coordinate, locationManager: self.locationManager, transportType: .automobile, destinationName: annotation.title ?? "")
}

Detail Button

With detail button you can point to another view controller where you can display additional information about the annotation. Right under initializing etaAnnotationView write this:

annotationEtaView.setDetailShowButton()
annotationEtaView.rightButton?.addTarget(self, action: #selector(detailButtonTapped), for: .touchUpInside)

The action then should trigger function showing the detailViewController and also passing the information from the selected annotation, for example like this:

func detailButtonTapped() {
guard
mapView.selectedAnnotations.count == 1,
let detailViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "detailVC") as? DetailViewController
else {return}

detailViewController.annotation = mapView.selectedAnnotations[0]

self.present(detailViewController, animated: true, completion: nil)
}

Customization

Pin Color

Pin color not only sets the color of the pin, but left and rightCalloutAccessoryView as well

annotationEtaView.pinColor = UIColor.blue

More

For more detailed implementation take a look at the example or contact me.

Author

fortmarek, [email protected]

License

AnnotationETA is available under the MIT license. See the LICENSE file for more info.